Las horas vigiladas
- O(n log n) · Difícil
- Plan completo
- Python
- JavaScript
- textos
- listas
- ordenar
Enunciado
La casa de la calle Olmo estuvo vigilada varios días seguidos, por turnos de distintos agentes, y a veces dos turnos se enciman. El comisario Paredes quiere saber cuántas horas hubo al menos alguien mirando.
Recibes turnos, una lista de textos "inicio-fin" con horas enteras contadas desde que empezó la vigilancia: "30-36" va de la hora 30 a la 36 y cubre 6 horas. El inicio siempre es menor que el fin, y los turnos llegan en cualquier orden. Regresa un entero: las horas cubiertas por al menos un turno, contando una sola vez las que vigilaron dos agentes. Con "9-12", "11-14" y "20-22" regresas 7: de 9 a 14 son 5, y 2 más.
Un turno puede caber entero dentro de otro: "8-18" y "10-12" dan 10. Dos que se tocan, "9-12" y "12-15", dan 6, sin hueco ni hora doble. Sin turnos, regresas 0.
Ejemplos
Dos se enciman y uno aparte
["9-12", "11-14", "20-22"] → 7
Un turno dentro de otro
["8-18", "10-12"] → 10
Dos turnos que se tocan
["9-12", "12-15"] → 6
Ninguno se encima
["4-6", "30-33", "60-70"] → 15
Horas de dos y tres cifras
["130-136", "95-101", "98-104"] → 15
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def horas_vigiladas(turnos):
passJavaScript
function horasVigiladas(turnos) {
}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 macetas del jardíndiccionarios · ordenar · índices
- Las sombrillas de la playalistas · ordenar · comparaciones
- 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