Los cruces del péndulo
- O(n) · Media
- Plan completo
- Python
- JavaScript
- listas
- ciclos
- comparaciones
Enunciado
Valeria colgó un péndulo en el laboratorio con un sensor que mide su posición cada décima de segundo: negativa a la izquierda del centro, positiva a la derecha y 0 justo en el centro. Quiere saber cuántas veces pasó de un lado al otro.
Escribe una función que reciba la lista de lecturas (enteros o decimales; puede venir vacía) y regrese cuántos cruces hubo, como entero. Un cruce es una lectura del lado contrario a la última lectura que no fue 0. El 0 no es de ningún lado: ni es cruce ni cambia de lado. Así, [2, 0, -3] tiene un cruce y [2, 0, 3] no tiene ninguno. La primera lectura que no es 0 tampoco es cruce, porque no hay con qué compararla.
Con [3, -2, -1, 4] hay dos cruces: de 3 a -2 y de -1 a 4.
Ejemplos
Cruza en cada lectura
[3, -2, 4, -1] → 3
Siempre del mismo lado
[1, 2, 3] → 0
Un cero entre lados distintos
[2, 0, -2] → 1
Un cero entre lados iguales
[2, 0, 3] → 0
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def cruces(lecturas):
passJavaScript
function cruces(lecturas) {
}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.