I just completed "The Treachery of Whales" - Day 7 - Advent of Code 2021 adventofcode.com/2021/day/7 #AdventOfCode
Ha sido muy guarro y no me ha gustado (he usado la fuerza bruta) asi que bueno ya daré con la solución mas elegante que seguramente será una función conveza o algo similar 😓
Veamos como quedó..
*SPOILERS* *SPOILERS*
#AdventOfCode #AdventOfCode2021
El parser...
la primera parte cálculo la población en cada posición y depués a lo bruto el coste de todas las posiciones pasando como función de coste constant_crab_cost os sea el calculo de coste base (1 movimiento 1 unidad de combustible)
Aqui veis que el coste es una funcion muy tonta que acumula el coste de todas las moverse a todas posiciones desde todas las demás (multiplicando cada una de aquellas por su poblacion de cangrejos)
calcular el coste básico por posición aqui es simplemente contar el numero de posiciones entre el origen y destino
Atacamos el test y luego el puzzle...
Otra estrella para la saca aunque sea cutremente por la fuerza bruta (ya hablaremos de eso...)
Veamos la segunda parte.. En esta ocasion nos cambian la función de calculo por una que genera costes incrementales por cada movimiento de mas (que si los contenedores , que si el precio del la luz ya sabéis repercutir al consumidor...)
luego me dí cuenta que Gauss se revolvería en su tumba si me viera calcular así las sumas de una serie aritmética y no con n(n+1)/2. Esta optimización nos ahorra montones de operaciones de memoria y aritméticas...
No mucho mas que cambiar para la parte 2 (seguimos a los bruto)
Buenos pues ya está, el puzzle tarda unos segundos en ejecutarse para mi bochorno..
Otra estrella ganada a lo picateclas
Pensando después se me ocurrio que podria pasarle el costo actual como cota superior a la funcion cost_at de esta manera si excedemos la cota podemos abortar prematuramente el cálculo sabedores de que vamos a calcular en vano el resto..
Pero sigue siendo cutre 😅
Diviértanse!
#adventofcode #adventofcode2021
Ah! por cierto si quereis aprender sobre Gauss y las series aritméticas el gran @emulenews es uno de los primeros sitios donde podeis empezar: francis.naukas.com/2010/04/15/iii…
No os perdais todos los desafios anteriores: twitter.com/i/events/14661…
Share this Scrolly Tale with your friends.
A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.