Los botes de rescate
- O(n log n) · Difícil
- Plan completo
- Python
- JavaScript
- listas
- ordenar
- comparaciones
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):
passJavaScript
function botes(pesos, limite) {
}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)
- Los costales antes de la lluvialistas · búsqueda · división
- Los hechizos que volteanordenar · listas · condicionales
- Los números de las camisetaslistas · ordenar · ciclos
- Los primos hasta nlistas · ciclos · operaciones
- Los tres cristaleslistas · ordenar · operaciones
- Los tres mejores puntajeslistas · ordenar · ciclos