Saltar al contenido

Las sombrillas de la playa

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):
    pass

JavaScript

function sombrillas(toallas, largo) {
}
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 →