Introducción
Aquí en Alemania, la decisión sobre los horarios de trabajo es muy estricta. Si trabaja 6 o más horas al día, debe tomarse un descanso de al menos 30 minutos. Si trabaja 9 horas o más, debe tomar un descanso de 45 minutos. Si trabaja menos de 6 horas, no tiene que tomar descansos.
Por supuesto, puede dividir esos descansos, pero cada parte debe tener al menos 15 minutos para contar.
El reto
En este desafío, obtendrá una lista de períodos de trabajo y deberá verificar si se tomaron suficientes descansos, utilizando las siguientes reglas:
Sea w
el tiempo de trabajo en horas:
w < 6 -> No breaks needed
6 <= w < 9 -> 30 minute break needed
w >= 9 -> 45 minute break needed
Además, cada descanso debe durar al menos 15 minutos. Además, siempre puede tomar más descansos de los necesarios. Esos son todos los valores "al menos".
Entrada
Su entrada será una lista de períodos de trabajo. El formato exacto depende de usted, pero debe contener solo valores de tiempo como horas y minutos.
Ejemplo:
El formato aquí es una lista de tuplas, mientras que cada tupla representa un período de trabajo. El primer elemento en una tupla será la hora de inicio, el segundo será la hora de finalización.
[("07:00","12:00"),("12:30","15:30"),("15:45","17:15")]
Esto da como resultado un tiempo de trabajo total de 9,5 horas y un tiempo de descanso total de 45 minutos.
Tenga en cuenta que esos períodos de trabajo no tienen que estar separados por descansos. También puede haber períodos de trabajo que simplemente se siguen (ver ejemplos de casos de prueba).
También tenga en cuenta que los descansos no cuentan en el tiempo de trabajo. Esos son dos valores separados.
Puede suponer que los períodos de trabajo están ordenados.
Salida
Dada esta entrada, genera un valor verdadero si se tomaron suficientes descansos y un valor falso si no.
Reglas
- Especifique el formato de entrada que está utilizando en su envío.
- No tiene que manejar entradas vacías. Siempre habrá al menos un período de trabajo.
- Los períodos de trabajo solo durarán un día, por lo que no tiene que manejar el trabajo durante la medianoche.
- Fecha- / Hora- / Lo que sea- Builtins permitido, siempre que venga con su idioma.
- Función o programa completo permitido.
- Reglas predeterminadas para entrada / salida.
- Se aplican lagunas estándar .
- Este es el código de golf , por lo que gana el conteo de bytes más bajo. El desempate es la presentación anterior.
Casos de prueba
Mismo formato de entrada que en el ejemplo anterior.
[("07:00", "12:00"), ("12:30", "15:30"), ("15:45", "17:15")] -> VERDADERO // 9: 30h de trabajo, 45 minutos de descanso -> OK [("07:20", "07:45"), ("07:59", "11:30"), ("11:55", "15:00")] -> FALSO // 7: 01h de trabajo, 39 minutos de descanso, pero el primer descanso no cuenta porque <15 minutos [("06:00", "09:00"), ("09:00", "11:50")] -> VERDADERO // Solo 5: 50h de trabajo, por lo que no se necesita descanso [("07:30", "12:00"), ("12:30", "16:00")] -> VERDADERO // 8h de trabajo, 30 minutos de descanso -> OK [("08:00", "12:30"), ("13:05", "17:45")] -> FALSO // 9: 10h de trabajo, solo 35 minutos de descanso en lugar de los 45 necesarios [("08:00", "14:00")] -> FALSO // 6h de trabajo, sin descansos, pero se necesitan 30 minutos
¡Feliz codificación!
fuente