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!

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with The Code Maverick

The Code Maverick Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @maverick_code

10 Dec
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"... Image
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 + Image
Read 14 tweets
10 Dec
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 +
Read 15 tweets
7 Dec
I just completed "The Treachery of Whales" - Day 7 - Advent of Code 2021 adventofcode.com/2021/day/7 #AdventOfCode
Ha sido muy guarro y no me ha gustado (he usado la fuerza bruta) asi que bueno ya daré con la solución mas elegante que seguramente será una función conveza o algo similar 😓

Veamos como quedó..

*SPOILERS* *SPOILERS*

#AdventOfCode #AdventOfCode2021
El parser...
Read 18 tweets
7 Dec
La 1º parte del Lanterfish ha sido facilisima (debe ser la segunda la puñetera)

Veamos..

*SPOILERS* *SPOILERS*

#adventodcode #AdventOfCode2021
El parser es mas bien directo ya que el formato es trivial a estas alturas "2,3,4,5,2" 🧐
el ciclo de vida del "lanterfish" es cuestion de entenderlo bien.. una vez hecho la implementacion es trivial. El pez evoluciona estados y opcionalmente tienen un vástago...
Read 14 tweets
7 Dec
Bueno pues "Hydrothermal venture" no ha resultado muy complicado, me temo que voy a flipar cuando llegue al 6...

Os cuento...

*SPOILERS* *SPOILERS

#AdventOfCode2021 #adventofcode
El parser de parsy se come la lista de segmentos de una tacada, aqui nada que ver salvo que quieras aprender un poco de Parsy.
Convierto los segmentos x0, y0 -> x1, y1 a (x0, y0, x1, y1)
filtramos los segmentos vert. y horiz. calculamos el grid necesario y dibujamos cada segmento en el grid (expandiendo horizontal o verticalmente en puntos (x, y) y anotando 1 en el grid por cada paso.
Finalmente contamos los solapamientos.
(código sin cometarios que me canso).
Read 15 tweets
6 Dec
Bueno ya me levanté de la cama y me pasé el Gigant Squid part1

pues vamos allá...

*SPOILERS* *SPOILERS*

#adventofcode #AdventOfCode2021
El parser, este es una bestia de parser se come el fichero entero y digiere la lista de números y todas las tarjetas de juego que se encuentre.. Que mas puedo decir, ejercito casi todo lo que tienen Parsy y como dice @FabioskySG "Hard work pays off" +
Ahora os enseñaré el cuerpo de la parte 1. Construyo instancias de la clase board y luego chequeo todos los números hasta que una de ellas devuelve "Bingo!" tras lo cual obtengo el score y ya hemos terminado. Sencillo gracias a q el trabajo esta en los métodos de la clase Board.+
Read 19 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(