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

ciza
spoiler

No ha estado tan mal como parecía despues de leer dos lineas de enunciado

1 respuesta
BeheritSp

Este me ha molado como el de la gameboy, yo me he hecho dos clases:

spoiler
1 respuesta
Leos

#718 Copie tu read input porque me gustaba más que el mio, ya que el mio para parsearlo me hacia más lio y la tuya me parecía más elegante.

1 1 respuesta
JuAn4k4

#723 Hay alguna que otra chapuza en mis soluciones, así que usalas con cuidado.

En el de las tropecientas validaciones te recomiendo copiar pegar y pasar al siguiente día directamente.

1 respuesta
eZpit

#720 #721 #722

Que bastos con los ángulos locos xD.
Que no está mal eh, pero sabiendo que son solo saltos de 90º:
(sentido horario)
90º: x->-y , y -> x
180º: x -> -x, y -> -y
270º: x -> y, y -> -x

Yo he juntado las dos ops L/R en una sola, normalizando el ángulo siempre a [0,360).

Mi código en Rust
1 respuesta
Leos

#724 jajajajaja chapuzas es lo que yo hago, me esta costando mucho pillarle el truco a rust, me cuesta varias horas hacer cada ejercicio por no saber como funciona rust, gracias por el consejo!

JonaN

Se puede limpiar un montón normalizando todos los giros como si fueran a derechas, pero prefiero jugar al cyberpunk xd.

Día 12
B

#725 Yo simplemente he implementado como se rotaba 90 grados a la derecha, los demas giros a la derecha los parto en giros de 90 recursivamente y los giros a la izquierda de k grados son giros a la derecha de 360 - k.

La verdad que lo he hecho para reducir el riesgo de meter bugs con putaditas de geometria reutilizando algo que tenia 100% de garantia que estaba bien implementado.

BeheritSp

No usar cosenos y senos es de insecure players

1 respuesta
B

#729 A mí de los integers se me saca a la fuerza!

r2d2rigo

Pues ya estaria, para mi trigonometria es como las expresiones regulares, lo dejo de usar 3 meses y me olvido de todo...

BeheritSp

#699 He arreglado el desastre del dia 11:

spoiler
test3y

El de hoy no me ha gustado mucho. Me estaban gustando más los de estos días anteriores.

día 12
MartiONE

Uf he llegado de estar todo el dia por ahi y que pocas ganas, pero al final lo he sacado bastante bien

R

Día 12. No veas con la geometría, he estado un buen rato pensando como representar la direccion y la posicion (he acabado abriendo Geogebra xD). Al final ni tan mal, para la parte 2 he tenido que cambiar poco codigo.

parte 1
parte 2
ciza

La parte 2 del día 13 es muy interesante y relativamente jodida.

Edit: Just solved

1 respuesta
B

#736 Yo la he acabado metiendo en matlab porque mi implementacion en python iba regulera, estaba interesante la verdad.

1 respuesta
ciza

#737 por qué en Matlab? mi no entender

Python
2 respuestas
QuitCat

#738

spoiler
1 respuesta
ciza

#739 con fuerza bruta creo que no lo vas a conseguir, o quizá dentro de un par de horas.

Pista
1 respuesta
B

#738 Porque

spoiler

Edito y dejo mi solucion

spoiler

edit: nvm

r2d2rigo

Pues aqui esperando mientras se resuelve la parte 2 por fuerza bruta, fuck the police.

1 respuesta
JonaN

Por una vez no he usado fuerza bruta, me ha quedado bastante elegante, creo.

Día 13, Parte 1
Parte 2
B

Solucion alternativa sin hacer el overkill del chinese remainder theorem, aunque creo que es lo mismo que habeis hecho @ciza @jonan

spoiler
QuitCat

#740 Gracias por la pista, al final me di cuenta que por fuerza bruta era "imposible", aunque con los casos de ejemplo me tardaba menos de 1-2 segundos, con el input final habían pasado fácil 10 minutos y no había terminado. Así que #742 , creo que por fuerza bruta te puede tardar bastante en salir

Me ha costado bastante sacar este, he tenido que coger papel y boli e ir desglosando hasta encontrar como hacerlo.

Mi solución, aun que supongo que debe ser parecida a la de los demás es:

spoiler
1 respuesta
B

#745 Si, cambiando el orden cambias la distancia del numero intermedio actual que tienes al modulo que necesitas llegar, pero no sabria predecir si una ordenacion es mejor que la otra de entrada.

Fyn4r

Está guapo el día de hoy, no tenía ni puta idea de hacer la segunda parte, acabé hasta el carallo y digo "voy a mirar si estos comentan algo que me sirva". Leo vuestras soluciones y acabo más perdido que antes. Nos vemos mañana xD

1 2 respuestas
B

#747 Pista

spoiler
MartiONE

A mi me ha gustado mucho el segundo, me ha hablado mi colega polaco loco escribiendome sobre el teorema de los chinos y me he tirado un buen rato entendiendo que hacia, al final lo he sacado

Traber

#747 Yo estoy con la fuerza bruta de nuevo, la primera parte ha sido más fácil incluso que otros días, pero esta segunda es, como con los días anteriores, más matemática que otra cosa. Me cago en dios.

Edit de progreso: Voy por el timestamp 100004892619220 y aún no sale nada, esperemos que salga pronto xd.