The Code Maverick (3/3 💉) Profile picture
#Codenares (Lite) #EUROBOTUAH Nullum magnum ingenium sine mixture dementia fuit

Dec 10, 2021, 15 tweets

I just completed "Smoke Basin" - Day 9 - Advent of Code 2021 adventofcode.com/2021/day/9 #AdventOfCode

problemas de lectura comprensiva? yo, a veces, lo que me ha llevado a darme de bruces con el puzle (habiendo pasado el test) hasta que quité las diagonales que nadie me habia pedido 🤨

Veamos...

*SPOILERS* *SPOILERS*

#AdventOfCode2021 #adventofcode

El parser. aprovechamos para probar estrategias de sanitización como por ejemplo leer la primera linea y adaptar el parser al vuelo para que las demas sean exactamente de la misma longitud +

Para cada coordenada calculamos si es un punto mínimo y con la lista de estos calculamos los riesgos y finalmente la solución . He combinado bucles for, maps y compresiones de listas para hacerlo mas variado +

is_low_point usa un algoritmo un poco timorato para no salirse del mapa comprobando vecinos, después calcula el menor de ellos y si nuestra celda actual es menor que este último entonces es un punto bajo. No añadáis diagonales que no hacen falta! (aunque aqui son inocuas)+

El fichero de test pasa sin problemas... +

El fichero del puzzle tambien +

Vamos con la segunda parte! +

Buscamos los "low_points" y calculamos sus "basins" o cuencas tras lo cual calculamos el tamaño de estas las ordenamos de mayor a menor y multiplicamos los 3 tamaños mas grandes para obtener la solución al puzle.

El buscador de cuencas usa una esquema worker/wrapper para buscar recursivamente los vecinos de interés a uno dado. Evita salirse del mapa con mas finura y también no evaluar los puntos identificados de nuevo.+

atacamos el fichero de test... +

atacamos el fichero del puzzle lo que nos da una salida bastante excelsa que he cortado en las parte inicial y final..

No muy complicado si sabemos leer bien...

Diviértanse!

#AdventOfCode2021 #AdventOfCode

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.

Keep scrolling