Las sombrillas de la playa
- O(n log n) · Difícil
- Plan completo
- Python
- JavaScript
- listas
- ordenar
- comparaciones
Enunciado
"Que nadie se quede al sol", pide el salvavidas. Hay toallas tendidas a lo largo de la playa y cada sombrilla da sombra a un tramo fijo; quiere cubrirlas todas con las menos sombrillas posibles.
Escribe una función que reciba toallas, la posición de cada toalla en metros (enteros de 0 en adelante, en cualquier orden, con repetidos; la lista puede venir vacía), y largo, un entero de 0 en adelante. Una sombrilla que empieza en el metro p cubre cada toalla de p a p + largo, las dos puntas incluidas, y puede empezar en cualquier metro. Regresa el mínimo de sombrillas, un entero; sin toallas, 0.
Con [1, 2, 8, 4, 12] y largo 3: una de 1 a 4 cubre 1, 2 y 4; otra cubre el 8 y otra el 12. Son 3.
Ejemplos
El del ejemplo
[1, 2, 8, 4, 12], 3 → 3
Justo en la orilla de la sombra
[0, 5, 10, 15], 5 → 2
Toallas encimadas
[3, 3, 3, 7], 2 → 2
Una sola toalla
[7], 3 → 1
Una toalla sola en el metro 0
[0, 10], 3 → 2
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def sombrillas(toallas, largo):
passJavaScript
function sombrillas(toallas, largo) {
}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)
- Las sondas antes del plazolistas · ordenar · booleanos
- Las vigas del templolistas · ordenar · comparaciones
- Lo que se vendió una sola vezlistas · ordenar · ciclos
- Los anagramas de una palabratextos · listas · ordenar
- Los andenes de la estaciónlistas · ordenar · ciclos
- Los botes de rescatelistas · ordenar · comparaciones