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

B

#600 Si un input tiene N instrucciones tu algoritmo ejecutaría el código para cada una de las instrucciones, por lo que sería O(N2), no? Aunque una instrucción determinada ejecute menos código seguiría pudiendo ejecutar potencialmente algo de un tamaño cercano al programa entero, o eso entiendo por lo que describes. No domino nada de Rust así que me puedo estar liando.

El algoritmo que he propuesto yo haría 3 pasadas de O(N) cada una, siendo la complejidad resultante O(N).

1 respuesta
JuAn4k4

#601 Si, el primer bucle es n2, podría skipear todas las líneas que ya han pasado haciéndolo o(n), pero no tenía fuerzas ya

1 respuesta
B

#602 Entonces sí, la idea es la misma, cambia un poco la implementación pero estamos hablando de lo mismo pues!

1
B

Dia 9 done, parece que se estan relajando con el parsing y de momento no hay ensamblador a la vista xdd

Ambas cosas pueden hacerse en tiempo lineal, por cierto, la segunda parte es especialmente bonita de hacer eficiente.

1 respuesta
Traber

#604 Una duda, los números a sumar son los 25 primeros de la lista, los 25 anteriores al que se está comprobando, o ambos conjuntos? Porque me estoy volviendo loco xd

1 respuesta
bornex

Bueno yo sigo un poco retrasado, para hoy tengo pensado hacer dia 8 y dia 9

B

#605 Si un número ocupa la posición k entonces su suma debería ser de alguna pareja entre k - 25 y k - 1. Si hablamos de la posición 27 valdrían las posiciones [2, 26], para la 28 valdrian las posiciones [3, 27] y etc

1 respuesta
Traber

#607 Cawen dios, no se por qué pero estaba haciendo la suma en el orden inverso y esto no chutaba xd. Ya están hechas las dos partes, la segunda está muy chula la verdad.

ciza

El de hoy no sigue el orden creciente de dificultad, es bastante fácil de hecho

1 respuesta
B

#609 Si los inputs fueran más grandes quizá sí, pero es que con 1000 números se puede hacer a fuerza bruta

1 respuesta
Saiko9

Bueno a ver si con el curro ya puedo hacer los ejercicios xDDDDD.

De momento dejo el 7 entero aquí en c++. Voy a mirar si me puedo poner al día, se me esta haciendo duro el lenguaje pero me esta viniendo de puta madre.

https://github.com/Semedi/aoc_2020/blob/main/day7.cpp

BeheritSp

Ha sido más fácil hackear el avión que la gameboy.

Ranthas

Llevo media hora haciendo el monger hasta q me he dado cuenta que en la 2a parte te piden la suma del menor y el mayor de los números del rango, no del primero y el último

1 respuesta
ciza

#610 por ejemplo si en el segundo ejercicio te dan otro input con números positivos y negativos, tiene mucha mas gracia

1 respuesta
Unrack

Me queda el de ayer a ver si me pongo al día.

spaguetti code
B

#614 aah, el algoritmo de kadane fue de las primeras cosas que programé en su día, me sirvió mucho para aprender a entender todo esto, que recuerdos jeje

mi solucion a ambas partes

spoiler
1 2 respuestas
BeheritSp

#616

spoiler
Taiden

#613 yo me he vuelto loco hasta que he visto que no es de la lista de los 25 anteriores sino de todo. Pensaba que estaban mal mis datos xDD

JonaN

El de hoy se podrá optimizar mil, pero pasando de estar un montón de tiempo si sólo hay que dar la solución una vez. Si al final son más complicados, ya gastaré tiempo en esos.

Unrack
1
bornex

Bueno pues finiquitao el día 8, la verdad es que me ha parecido fácil pero la segunda parte no tanto. Al final lo he hecho a fuerza bruta (he ido cambiando el programa hasta dar con la solución buena): https://github.com/soasada/advent-of-code-2020/blob/master/crates/day8/src/day8.rs

A ver si me da tiempo de hacer el de hoy y me pongo al dia.

Fyn4r

Creo que la segunda parte me funciona de chiripa porque en el input hay números repetidos y no es algo que tuviese controlado xDD

1 respuesta
MaSoBa

Hecho. Y es posible que me retire ya, que mañana sale Cyberpunk xDDD

B

#622 En la segunda parte creo que no importa si los números están repetidos, aunque me gusta muy poco la expresión contiguous set porque no tiene sentido. Si acaso, set made of contiguous numbers, pero al no haber usado esa expresión lo he entendido como contiguous subarray.

1 respuesta
Fyn4r

#624 Sí, en eso tienes toda la razón

P.D Me estoy haciendo un "post mortem" de cosas que podría mejorar de mis soluciones, pronto disponibles en el blog que no tengo.

r2d2rigo

Vaya downgrade de problema.

Taiden

Al fin soluciono el problema del segundo apartado del ejercicio 7. Era una tontería. Pues nada, ya estoy al día con las 18 estrellas.

Ranthas

Aquí cada vez somos menos

1 respuesta
QuitCat

#616 Mi solución era parecida pero en un solo while, aunque es lo mismo

spoiler

#628 -> #298 :joy:

1 respuesta
Ranthas

#629 Y eso que no ha subido la dificultad

1 respuesta