La ficha de la abuela
- O(2ⁿ) · Legendaria
- Plan completo
- Python
- JavaScript
- recursión
- listas
- índices
Enunciado
La abuela Chelo juega con sus nietos en un tablero de casillas numeradas del 0 al largo. Los dados ya se tiraron y los resultados están anotados en orden, pero falta mover la ficha, que empieza en la casilla 0. Con cada tirada, la ficha avanza o retrocede exactamente ese número de casillas, lo que tú elijas, siempre que no se salga del tablero. La abuela quiere saber de cuántas maneras puede quedar justo en la meta, la casilla largo, después de usar todas las tiradas.
Escribe una función que reciba tiradas, una lista de enteros positivos (puede venir vacía), y largo, un entero de 1 en adelante, y regrese un entero: cuántas maneras hay. Dos maneras son distintas si en alguna tirada una avanza y la otra retrocede. Pasar por la meta antes de tiempo no basta: lo que cuenta es dónde queda la ficha al final.
Con tiradas 3, 2 y 4 y largo 5, la ficha tiene que avanzar 3, porque retroceder la sacaría del tablero. Con el 2 puede ir a la 5 o a la 1. Desde la 5, el 4 solo la puede regresar a la 1; desde la 1, el 4 la lleva a la 5. Hay una sola manera: regresa 1. Con cuatro tiradas de 1 y largo 2 hay dos: 0, 1, 0, 1, 2 y 0, 1, 2, 1, 2.
Ejemplos
El primer ejemplo
[3, 2, 4], 5 → 1
Pasa por la meta y regresa
[1, 1, 1, 1], 2 → 2
No hay manera
[2, 2], 5 → 0
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def ficha(tiradas, largo):
passJavaScript
function ficha(tiradas, largo) {
}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.