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.