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

Dec 8, 2021, 16 tweets

I just completed "Seven Segment Search" - Day 8 - Advent of Code 2021 adventofcode.com/2021/day/8 #AdventOfCode

Otro trabajo "guarro" y que conste que quise hacerlo de una forma elegante pero acabé haciéndolo en plan "el juego de la imitación" buscando el "Heil JS!" y esperando pacientemente a que la "bomba" cuadrase todo..

Veamos..

*SPOILERS* *SPOILERS*

#AdventOfCode #AdventOfCode2021

el parser como siempre para leer todo sin errores que ya bastante lío nos van a formar los amigos de Advent of Code..

Omito la 1º parte por trivial y me voy a la grandiosa idea que me iba a permitir dar la campanda. Un concienzudo análisis de las relaciones entre números y sus segmentos..
Y ha llegado a resolver el test1 pero en el segundo test 😓😓😓 No había forma..

Por mas vueltas que le daba no conseguía ver los fallos y el TDD no ayudaba mucho por que el estado que maneja era grande y díficil de modelar... Entonces se me ocurrió simplificar el asunto, generar permutaciones y aplicar las ideas de las relaciones entre números.. Funcionaría?

Bueno hubo que hacer algunas pruebas y añadir las restricciones apropiadas que capturasen las diferencias sobre todo entre códigos del mismo tamaño aprovechando que los códigos 1 7 4 8 tenian tamaños distintos y algunos como el 7 asimetrías "interesantes"

Tras añadir las restricciones básicas de tamaño y algunas interrelaciones el test 1 pasaba...

Hubo que cambiar algunas restricciones "flojas" por otras mas fuertes para pasar el segundo test..

finalmente probamos suerte con el tercero, unos 2 minutos de calculos y finalmente la bomba cuadro todos los cálculos..

En fin, no siempre se puede ser "elegante" , al menos yo 😓

Diviértanse!!

#AdventOfCode #AdventOfCode2021

Bueno no quedé muy contento con el runtime de casi 2 mins asi que repensé la generación de candidatos. sabiendo que 1,4, 7 y 8 son de longitud única restringimos las operaciones de permutacion al resto de números, manteniendo las condiciones...

así que pasamos de comprobar 3628800 pemutaciones para cada linea de display y 1 minuto y medio aprox. para resolver el puzzle completo.

a comprobar 120 pemutaciones para cada linea de display y una fracción de segundo aprox. para resolver el puzzle completo.

bueno.. ¿es elegante? quizás 😅

Diviértanse!

#AdventOfCode2021 #AdventOfCode

BTW: Si calculas los códigos de longitud 5 (2, 3, 5) y luego los de longitud 6 (0, 6, 9) son dos cálculos de 6 pemutaciones para total de 12 que una reducción del 90% frente a los 120 actuales. Ahí es nada!

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