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

r2d2rigo

Llevo unas horas dandole vueltas y mira, que paso. Ya ma;ana a ver cual es el plan.

eZpit

Por aquí también listo con la pt 2. Estaba desde el principio con modulus & remainders, pero estaba razonando mal sobre el "delay" de la posición y no había manera.

Day 13 pt 2

Ayer perdí un rato probando y montando benchmarking para Rust, así que ahora esto listo para medir penes.

  • day 13 pt 1 time: 7.9679 us
  • day 13 pt 2 time: 10.856 us
ciza

Manera loca con el teorema chino del resto

spoiler
1 respuesta
B

#753 Si los modulos son primos con hacer y ** (p - 2) mod p ya tienes el inverso, y te ahorras el extended euclid!

eZpit
4
eZpit

Después de encontrar mi solución a day 13 pt 2 (fuerza bruta pero incrementando steps con el mínimo comun multiplo) y ver que todo el mundo habla del Chinese remainder theorem, me he puesto a leer y lo he reimplementado con el.

Total que he bajado de 10.750 us a 8.9944 us.
Vaya timo xD, que alguien me devuelva la ultima hora de mi vida.

B

Alguien de por aquí ha sacado el 13 en python a fuerza bruta? He intentado hacerlo de varias formas y no hay ninguna que tarde relativamente poco, con los inputs de prueba va rapido pero con el otro tarda la vida, al final he acabado haciendo el teorema chino de las dagas voladoras.

Leos

Día 4 acabado, a este paso no llegaré a estar al día pero he superado los que hice el año pasado, a ver hasta donde llego

https://github.com/Leos1113/Advent-of-code-2020/tree/main/day4

B

Los de hoy (dia 14)

Parte 1

spoiler

Parte 2

spoiler

La segunda parte si pidiera escribir en segmentos contiguos de memoria si sabria hacerla mas rapida, con sets de bits libres no se me ocurre muy bien como, aunque la solucion a saco ya sirve.

Ranthas

Este fin de semana no he podido mirar nada....¿como van los nuevos problemas? ¿Alguno interesante?

BeheritSp

Joder lo que me ha costado el de ayer xD. Estuve todo el día dándole vueltas y escribiéndome ejemplos en papel.

spoiler
Part 1 y 2 Day13

En un rato intento el Day14

Cecos94

He empezado el finde y voy un poco atrasado, estoy en el ejercicio 7 y me acabo de dar cuenta que no tengo ni idea de grafos y busquedas xD

Hay ejercicios que tardo mas parseando la entrada que en el propio ejercicio en si. Lo estoy haciendo en scala

R

Ruina con el de ayer. La segunda parate nada, por fuerza bruta obvio no terminaba, y las ecuaciones para el teorema chino del resto no sabia como plantearlas xD
Total que termine buscando ideas y al final resolvi un sistema de ecuaciones con una libreria. Pero vamos que mas que una solución mía es del que la publico por reddit U.u

1 respuesta
ciza

Solución de la parte 2 de hoy, me parece que ha quedado bastante compacta

Solución
1
B

#763 Intenta plantearlo como digo en #748 , es sin el teorema chino del resto

1 1 respuesta
JonaN
Día 14, parte 1
Parte 2, función de producto cartesiano sponsored by Stackoverflow
BeheritSp

Day 14 listo

Day14
MartiONE

Ojala aprender a leer y no hacer otro problema totalmente diferente en la parte 2 hasta que me he dado cuenta media hora despues:

spoiler
1 respuesta
QuitCat

Pregunta para la segunda parte:

spoiler
1 respuesta
B

#769

spoiler
r2d2rigo

Dificultad insignificante comparado con el de ayer.

spoiler
Fyn4r

De hoy saco 2 lecciones.

  1. El código más guarro en lo que va de mes.
  2. Si el lenguaje no me dejase hacer todas las mierdas que python me permite no pasaba ni del segundo día.

P.D #768 que bueno ese yield

1
eZpit

Hoy he perdido un rato también intentando optimizar la pt2 sin mucho éxito. Los fucking compilers y LLVM ya no dejan espacio para nada xD

1 respuesta
B

#773 Yo la unica optimizacion que he sacado es que si te encuentras que una operacion tipo

10X010

va antes que una tipo

X0X010

te das cuenta de que la operacion posterior domina absolutamente a la otra y puedes descartarla. Me ha quitado unas 20 operaciones de casi 500, not bad pero tampcoo nada remarcable, y de ahi no he sabido mejorar, y no se si se puede realmente.

thrazz

Tenía que sacar al perro, lo he acabado rápido sin saber ya por dónde andaba pensando que no funcionaría, le he dado a run y me he pirado.

He vuelto y me encuentro esto con la solución correcta:

part2: 35:22.831 (m:ss.mmm)

Orgulloso de semejante chapuza.

R

#765 No se si he entendido bien a lo que te referías, eso no es fuerza bruta?

De todas formas se me ha encendido la bombilla hoy

spoiler

En el de hoy no me he parado mucho, lo he tratado como strings e ya. La ejecución es inmediata.

Dejo por aquí día 13 y día 14
https://github.com/NovelleP/AdventOfCode2020/tree/main/day13
https://github.com/NovelleP/AdventOfCode2020/tree/main/day14

1 respuesta
B

#776 No, no lo es. De hecho la idea era acabar con tu solución siguiendo mi pista.

B

Ha caido bastante la dificultad entre ayer y hoy, la verdad

Dia 15

spoiler
eZpit

Hoy he hecho "bien" la parte 1, y no he tenido que hacer nada en la parte 2 xD
Imagino que hay alguna manera más eficiente y tengo una idea ya, pero lo dejo para esta tarde.

BeheritSp

Bueno me alegro de que pongan los chungos los fines de semana xD

spoiler