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.