Advent of Code - Día 7

Mi solución para el día 7.

hace 3 años   •   2 min de lectura

Por Andrés Tuñón
Photo by Swanson Chan / Unsplash

¿No sabes en que consiste esto? En el día 1 lo explico:

Advent of Code - Día 1
Se acerca la Navidad y de igual forma una linda época para festejar y compartir con la comunidad de programadores de todo el mundo.

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:

Day 7 - Advent of Code 2021

Solución:

Happy Coding and Happy Holidays!

Corre la voz

Sigue leyendo