Saltar al contenido

Los botes de rescate

Enunciado

Tras el naufragio, los botes de rescate van y vienen entre el barco y la costa. Cada bote lleva a lo más dos personas, y entre las dos no pueden pasar del peso que aguanta. Cada viaje cuesta tiempo: quieres sacar a todos con los menos botes posibles.

Escribe una función que reciba pesos, una lista de enteros positivos que puede venir vacía, y limite, el peso que aguanta un bote. Nadie pesa más que limite, y justo en el límite todavía se cabe. Regresa el mínimo de botes, un entero; si no hay a nadie que rescatar, 0.

Con [70, 50, 80, 50] y limite 100: los dos de 50 van juntos, el de 70 va solo y el de 80 va solo. Son 3 botes.

Ejemplos

  • El del ejemplo

    [70, 50, 80, 50], 100 → 3

  • Parejas justo en el límite

    [5, 1, 4, 2], 6 → 2

  • Solo dos por bote

    [10, 10, 10, 10, 10], 100 → 3

  • Una sola persona

    [60], 100 → 1

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

Empiezas con esto

Python

def botes(pesos, limite):
    pass

JavaScript

function botes(pesos, limite) {
}
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 log n)

Ver todos los retos →