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 "Syntax Scoring" - Day 10 - Advent of Code 2021 adventofcode.com/2021/day/10 #AdventOfCode

Luego os lo cuento...

*SPOILERS* *SPOILERS*

#AdventOfCode2021 #adventofcode

El parser!! No me canso de quitarme problemas leyendo la entrada con un poco de cuidado (incluso he tratado de correr el fichero de un puzle con el código de otro y esto ayuda a que nada que no tenga que pasar "pase"...

Leemos todos los "chunks" y de aquellos corruptos calculos su "score" an base al caracter que no cuadraba en el lexing.. Usamos un dict para las puntuaciones +

Me dá la risa porque este ejercicio se lo hemos puesto casi igual a los alumnos de "Estructuras de Datos" en el tema 1 "pilas" (la parte que pude dar esta año antes de lesionarme) Asi que voy a hacerlo un poco bonito q a alguno le puede "ilumnar". Empecemos con un poco de TDD.. +

Wrapper/worker y una pila para almacenar "aperturas" y compararlas con los cierres. si todo cuadra "bien" sino o bien falta entrada: "incompleto" o bien no cuadra con la pila: "corrupto" leed los comentarios y vereis claro el código (espero!) +

Probamos el fichero de test y el escore cuadra +

Atacamos el puzzle y aunque un tanto verboso la salida no deja lugar a dudas +

Trabajo limpio y sin problemas, aquí el TDD ha dados sus frutos y veremos luego que "tenemos gran parte de la segunda parte" avanzada.

"La parte contratante de la 1º parte..."

Con la informacion de la pila que extraeremos del parsing simplemente reconstruimos el "final perfecto" dandole la vuelta a la pila y convirtiendo aperturas en cierres. qué hemos necesitado para hacerlo? veamos.. +

Añadimos el estado de la pila y la entrada restante a las tuplas del resultado del "parsing". En realidad sólo necesitamos el estado de la pila, pues vamos a recrear el final de las cadenas invirtiendo la pila y transformando '([{<' en ')]}>' (en el función principal, claro!).. +

Probamos con el fichero de test.. +

y entonces atacamos el puzzle. Salida excelsa como siempre pero todo sin problemas.

Otra estrella para la saca!

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