Compases completos
- O(n) · Media
- Plan completo
- Python
- JavaScript
- listas
- ciclos
- booleanos
Enunciado
Clara revisa la partitura de su alumno antes del ensayo. La pieza va en compases de 4 tiempos, y las notas tienen que llenar cada compás justo: ninguna puede quedar partida entre un compás y el siguiente.
Escribe una función que reciba la lista de duraciones de las notas, en orden y en tiempos (enteros de 1 a 4), y regrese verdadero si llenan compases de 4 exactos, y falso si no. Las notas se acomodan desde el principio: cuando un compás suma 4, empieza el siguiente. Con [3, 1, 2, 2] el primer compás es 3 + 1 y el segundo 2 + 2: verdadero. No basta con que el total sea múltiplo de 4: en [3, 2, 3] el 2 haría que el primer compás sume 5, así que cruza la raya y regresas falso. También es falso si el último compás queda incompleto. Sin notas no hay nada mal: la lista vacía regresa verdadero.
Ejemplos
Dos compases justos
[4, 2, 2] → true
El último compás queda corto
[2, 2, 3] → false
Muchas notas cortas
[1, 1, 1, 1, 2, 1, 1] → true
Cruza la raya en el segundo compás
[4, 1, 2, 2, 3] → false
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def compases_ok(notas):
passJavaScript
function compasesOk(notas) {
}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.