Saltar al contenido

Compases completos

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

JavaScript

function compasesOk(notas) {
}
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)

Ver todos los retos →