For part 1, BFS is used since there is no need to visit each splitter more than once to count visited splitters. For part 2, the code initially removed the visited check. This failed miserably, losing momentum aound Y=54-56. A recursive function with memoization solves it much faster. |
||
|---|---|---|
| .. | ||
| output | ||
| aoc.py | ||
| README.md | ||
Advent of Code 2025
Solutions for #aoc2025 in Python 3 (3.13.4).
Programming setup:
- Lenovo Thinkpad T14
- OpenSUSE Tumbleweed with labwc
- Helix editor w/ Ruff LS
- Vivaldi
- Foot
Help scripts
Display all solved puzzles:
python aoc.py
To bootstrap a new puzzle (creates input/<day_no>.txt and output/day_<day_no>.py):
python aoc.py <day_no> new
Manually copy the puzzle input from https://adventofcode.com and paste it in input/<day_no>.txt
to start coding.
wl-paste > input/<day_no>.txt
Solve separate puzzle (replace XX with the puzzle number):
python -m output.day_XX
Solve separate puzzle using stdin (replace XX with the puzzle number):
wl-paste | python -m output.day_XX
cat tmpfile | python -m output.day_XX
Execute separate puzzle on file save (replace XX with the puzzle number):
ls output/*.py | entr -c -s 'wlpaste | python -m output.day_XX'
ls output/*.py | entr -c -s 'cat tmpfile | python -m output.day_XX'
ls output/*.py | entr -c -r python -m output.day_XX
(requires entr and wl-paste, Mac users can instead use pbpaste. If you
prefer X at Linux, use xclip -selection clipboard -o).