¿No sabes en que consiste esto? En el día 1 lo explico:
Esta vez logré la parte 1, pero necesite un poco de ayuda para la parte 2; primero pensé que se solucionaba realizando la sumatoria de números consecutivos hasta n (estaba en lo correcto), pero usé una función para recorrer todos los números y use memoization; en el momento no recordé la función:
f(n) = (n*(n+1))/2
El resultado siempre es la sumatoria de números consecutivos, al menos tenía la sospecha de que había una función de ese estilo, claramente baja mucho la complejidad.
Luego pensé que había que hallar el promedio entre todos los números resultantes y no vi claramente que en la parte 2 pedían el punto medio real de todos los números.
Ya aquí fue que me rendí y encontré en las soluciones la función que mencioné e incluso algunos aplicando promedio, pero no de la forma que yo lo hice, sino un promedio granular, ¡ qué brillante!
En conclusión habia 2 vías:
- Brute force: Ver todas las posibles posiciones y hallar el que menos costo generaba
- Median/Mean: Calcular el punto medio
Solo me faltaban unos pequeños pasitos en la parte 2 y al final los apliqué a mi solución.
Enunciado:
Solución:
Happy Coding and Happy Holidays!