advent-of-code/2017-python
2021-11-01 16:45:03 +01:00
..
solutions Add solutions from AOC 2016-2020 2021-11-01 16:45:03 +01:00
tests Add solutions from AOC 2016-2020 2021-11-01 16:45:03 +01:00
.gitignore Add solutions from AOC 2016-2020 2021-11-01 16:45:03 +01:00
aoc.py Add solutions from AOC 2016-2020 2021-11-01 16:45:03 +01:00
README.md Add solutions from AOC 2016-2020 2021-11-01 16:45:03 +01:00

Advent of Code 2017

Lösningar för #aoc2017 i Python 3 (testat mot 3.5.2).

Logg

  • Särskilt svåra dagar (tidsåtgång mer än 60 min) vid kodtillfället:
    • Dag 3,
    • Dag 6,
    • Dag 7,
    • Dag 14,
    • Dag 18 och
    • Dag 21.
  • Dag 3: del 2 kopierades från en färdig sekvens. Restpunkt är att faktiskt implementera den.
  • Dag 5: del 2 tar väldigt lång tid att exekvera. Restpunkt är att optimera denna!
  • Dag 11: Allt som behövs finns beskrivet på Hexagonal Grids.
  • Dag 13: del 2 misslyckande att hitta något som var snabbt nog att exekvera. Restpunkt är skriva något som inte tar en timme att köra!
  • Dag 14 del 2: Läs på om Union-find algoritmen
  • Dag 15: borde skrivas om att använda generatorer för att snabbas upp.
  • Dag 18 del 2: "värdet av" kan betyda flera saker ... jävla etta.
  • Dag 21: Blocken ska divergera och ska därmed testas separat mot reglerna. Detta missade jag, och antog istället att samma regel applicerade på alla block ...

Hjälpscript

För att köra alla lösningar:

python aoc.py

För att starta en ny dag (skapar och populerar filerna inputs/<dagnummer>.txt, solutions/day_<dagnummer>.py och tests/day_<dagnummer>_tests.py):

python aoc.py <dagnummer> "<namn på dag>"

Öppna puzzle input manuellt och kopiera innehållet till inputs/<dagnummer>.txt som ett sista manuellt steg.

För att köra separat lösning (ersätt XX med dagens nummer):

PYTHONPATH=$(pwd) python solutions/day_XX.py

Starta automatisk testkörare (ersätt XX med dagens nummer):

export PYTHONPATH=$(pwd)
ls solutions/**/*.py | entr -c -r python tests/day_XX_tests.py