Advent of Code 2020

¿Dónde me apunto?

https://adventofcode.com/

Normas

  • Cada día se desbloquea un problema nuevo
  • Programas en el lenguaje que te da la gana
  • Utilizas las técnicas que te da la gana
  • Le dedicas el tiempo que te da la gana
  • Cada problema tiene una caja de texto para meter la solución (suelen ser números o alguna cadena de texto pequeña)

Leaderboard privado para el pique sano

NSFW

Las respuestas se postean en Spoiler + code

eZpit

#870 Solo cuentan las cartas de la partida de más alto nivel. Todas las subpartidas solo son para resolver una "ronda" en el juego que las empieza y lo único que importa es quien gana. Cada juego tiene su propia historia y las partidas recursivas no se afectan entre ellas.

Para la historia, fíjate que es una historia por cada jugador y se mira si uno o el otro repiten.

2 respuestas
JonaN

#870 #871 no hay ninguna diferencia a efectos prácticos entre la partida principal y las subpartidas. Al empezar cada partida/subpartida se pone el diccionario a 0, y las manos que vayan saliendo en esa partida/subpartida se guardan en ese diccionario. Sí puede haber casos donde una subpartida la gane el jugador 1 por repetición.

De igual forma, las manos que van saliendo en una subpartida desaparecen al acabarse esta, no se tienen en cuenta al salir del bucle como manos ocurridas.

1 respuesta
B

El de hoy es el que más me ha gustado con diferencia.

Dia 23

spoiler

A todo esto, quien es yusent? Estoy viendo las soluciones que pone en twitter y es jesucristo en la tierra el cabron jajaja

QuitCat

#871 #872 Resuelto, era una tontería con un if/else

BeheritSp

Muy guay este.

Day 23 Part 1 y 2
JonaN

Joder, después de hacer la parte 1 he tenido que rehacerla para la parte 2 con un diccionario porque estaba usando una lista y era imposible optimizarlo a tiempos tan bajos.

Divertido problema pero me ha fastidiado xd.

1 respuesta
B

#876 A mí me ha olido a que la parte 2 era "lo mismo pero con trollones de elementos y tropollones de iteraciones jajaja salu2", pero si no casi que mando a tomar por culo la primera parte tb jajaj

ciza

Yo tengo ganas de continuarlo pero entre Navidades y familia está cuesta arriba sacar más de 10 minutos... :(

B

Dia 24, bastante facilito

spoiler
2 respuestas
JonaN

Hoy me he visto bien programando, a lo tonto estoy cogiendo soltura con el reto.

#879 bastante más elegante en la parte 2 coger sólo adyacentes, yo como chapuzas que soy he calculado mínimo y máximo y he iterado en todo lo que caía dentro xddd.

Día 24
2 respuestas
BeheritSp

Este me ha gustado también.

spoiler
Day24
B

#880 El problema del dia 17 era muy parecido, en el sentido de que se podia resolver considerando la bounding box o solo las celdas afectadas, parece que es un topico que le gusta a quien sea que haya hecho los problemas.

B

Pues ya estaria, dia 25, un placer a todos y congrats a yusent por quedar primero!

spoiler
1
JonaN

Hecho también, un placer y feliz navidad!

#270 a ver si Olentzero/Papa Noel me trae un CT después de 13 años en MV

Día 25
1 respuesta
B

#884 jajaja, parece que se ha portado!

1
BeheritSp

ggwp!

Day 25
1
B

@thrazz estaria guay tener el CT todos los que hemos metido los 25 problemas, no? que yo sepa aparte de @Jonan esta @BeheritSp y yusent, que no se quien es en MV, pero ademas es a quien le corresponderia el mod caso que realmente querais darlo jajaja

1 1 respuesta
thrazz

#887 seh, es que lo he hecho antes desde el móvil y no podía ver quién más lo había hecho.

Falta uno.

4 1 respuesta
eZpit

Done 🎉

PS #888 gimme!!
PS2 nunca me pusisteis en la lista T_T soy guillermomuntamer en aoc.

BeheritSp

Mood esta mañana

Sacado de reddit

2 1 respuesta
eZpit

#890 Pues yo hoy aliviado, pero se hace raro si xD

test3y

Pues al final ha sido un poco bajón con ese 25 tan flojo xD. Yo pensaba que esto iba a tener un crescendo de dificultad pero para nada. El pico yo creo que ha estado en el 19 y 20. Aunque a mí el que se me atascó fue el de los autobuses, que hasta dos o tres días después no lo saqué xD. El resto los he ido haciendo al día más o menos. Los más interesantes igual el 18, si se hace bien con un mini intérprete, y el 19. Haciéndolos en haskell, con los que son de hacer muchas modificaciones en estructuras de datos grandes se convierte en un poco desastre la cosa, como el de los elfos que juegan al juego de decir los números, o el 23 del cangrejo y las copas. Con la parte 2 del 23 al final me harté y lo hice en c. Tengo que mirar a ver cómo va la mutabilidad en ese lenguaje y cómo se hace de forma idiomática porque de momento ni zorra. El resto sin problemas.

No conocía esto del advent of code y me ha gustado bastante. Para practicar otros lenguajes está de lujo. Y veo que están disponibles todos los anteriores desde el 2015, así que perfecto. ¿Conocéis otras webs así del estilo? Yo lo que he visto de leetcode o hackerrank parecían más de implementar functiones específicas en vez hacer problemas más desarrollados como en aoc.

Dejo los tres últimos:

24
25

¿Por qué al pegar el código dentro de [code] no quedan identados los bloques dentro de las funciones si hay una línea en blanco entre ellos?

1 respuesta
B

#892 Una web muy buena es la del tuenti challenge. Muchos problemas no son unicamente de programar, aunque la dificultad es bastante mas elevada que el AoC (al menos el de 2020, que es el que he hecho). Yo en la unica edicion en la que participe hice 13 de 15 problemas, y me pille hasta vacaciones del curro para meter los tres ultimos porque eran imposibles ajajajajaj

Luego, webs de problemas de programacion en los que lees un input y escupes una respuesta tienes atcoder.jp, codeforces.com y algunas mas del estilo, aunque esas dos son las unicas que recuerdo ahora mismo.

La Google Code Jam tambien es parecida, aunque de nuevo con una dificultad mucho mayor, y tienes los problemas de otras ediciones disponibles para probar.

1 2 respuestas
QuitCat

Una infección me ha dejado KO esta última semana, que pena no haberlo acabado, aún así me deje la segunda parte de uno de ellos. Igualemente nada mal la verdad.

#893 TuentiChallenge es mas jodido porque tienes X ejercicios en los que puedes pasar sin resolver, además que como dices no son solo de programación, hay algunos que te dan una pista, una imagen o algo así y tienes que sacar una solución "de la nada", menos tiempo para hacerlos, etc. Igualemente esta bastante divertido.

1 respuesta
B

#894 Yo me lo pase como un enano, uno de los problemas que mas me gusto fue uno en el que te conectabas a un sitio random, te enviaba una imagen con tropocientasmil monedas de euro (podian ser de 2e, 1e, 50ct... etc) generada al azar y tenias que decir cuanto dinero habia en total.

https://github.com/srgrr/Tuenti-Challenge-7/blob/master/12/interaction.py

Que panzada a aprender sobre computer vision sobre la marcha y a debugar un codigo cancerigeno jajajaja, quiza me animo en 2021 y le doy un try, que esto del aoc me ha devuelto la ilusion por perder el tiempo haciendo puzzles que no le importan a nadie

test3y

#893 Me las apunto todas y ya las iré viendo, muchas gracias. A mí lo de competir no me llama, o lo de hacer los problemas a un ritmo marcado, pero para tenerlos ahí como recurso y hacerlos con calma cuando apetece están muy bien. Viendo por encima lo de google y el tuenti challenge tienen buena pinta, aunque por lo que comentas la dificultad se irá de madre en cuando van subiendo el nivel xD, pero bien, bien.

1 respuesta
Ranthas

#896 También tienes el Project Euler, aunque estos son problemas matématicos 100%.

Este año me he quedado descolgado en el día 11-12, he ido haciendo algunos días sueltos pero me he quedado con la espina de no terminarlos, a ver si estos días que no hay nadie en el curro puedo irlos terminando aunque sea fuera de fecha

Y enhorabuena a los que han sido constantes y han terminado los 25 problemas

1 1 respuesta
Traber

#897 Yo me he quedado a medio camino porque las matemáticas no son lo mio (más allá de mates de 1° bach) y me tocaron la polla dos ejercicios que dependían de ellas para resolverlos, si tenía poco tiempo para hacer esto, tener que aprender cosas así de "básicas" para resolverlo me quitaba la moral xd.

El año que viene lo intentaré de nuevo, espero que sean problemas más lógicos.

R

Bueno, ayer terminé el AoC, este es el primer año que lo termino. Despues del fin de semana de los dias 19 y 20 lo deje 2-3 dias y luego lo he vuelto a retomar.

No pongo todos los códigos por aqui que son muchos. Dejo enlace al repo por si a alguien le interesa.

https://github.com/NovelleP/AdventOfCode2020

Para la segunda parte del dia 23, tire de una lista circular que implemente y un hashmap. Es bastante mas rapido que lo que hice para la parte 1, pero aun asi se me va a 50 segundos, creo que el fallo lo tengo al calcular el minimo y maximo actual, tiene que haber una forma mas directa.

#847 muy buena explicación, pero al final tire con la regex, no es una buena solución general, pero para este caso funciona.