Saltar al contenido

Las muestras en las cápsulas

Enunciado

Mariam Haddad, ingeniera de misión, prepara el regreso de las rocas de Marte. El rover las guarda en cápsulas con el mismo límite de peso y sigue una regla fija: cada roca va a la primera cápsula abierta donde todavía cabe, y si no cabe en ninguna, el rover abre una nueva.

Escribe una función que reciba tope, el peso máximo de una cápsula (entero mayor que 0), y pesos, los pesos de las rocas en el orden en que se recogen: enteros de 1 a tope, y la lista puede venir vacía. Cada roca entra en la primera cápsula, en el orden en que se abrieron, donde su carga más la roca no pase de tope (llegar justo sí vale); si no cabe en ninguna, se abre una cápsula nueva al final. Una roca guardada ya no se mueve. Regresa cuántas cápsulas se abrieron.

Con tope 10 y [6, 5, 4, 3, 7, 2]: el 6 abre la 1, el 5 abre la 2, el 4 llena la 1, el 3 va a la 2 (lleva 8), el 7 abre la 3 y el 2 cabe justo en la 2; regresa 3. Sin rocas, regresa 0.

Ejemplos

  • El ejemplo

    10, [6, 5, 4, 3, 7, 2] → 3

  • Sin rocas

    10, [] → 0

  • Una roca que llena su cápsula

    5, [5] → 1

  • Llegar justo sí vale

    10, [5, 5, 5, 5] → 2

  • Una roca vuelve a la primera cápsula

    10, [6, 6, 4, 4] → 2

  • Cada roca llena una cápsula

    3, [3, 3, 3] → 3

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def capsulas(tope, pesos):
    pass

JavaScript

function capsulas(tope, pesos) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(n²)

Ver todos los retos →