For the first part, I used itertools.combinations to find the highest pairs of batteries. And as expected, that solution did not scale well for pt 2. I figured out that reducing batteries until the top most 12 (and 2) remained was the correct way to go. the _maxj(line, C) function is the hive conclusion from the solution mega thread. I really liked this brilliant use of a while loop to exlude batteries. - The first char just skip the while loop. A char emptying the battery list also does this. |
||
|---|---|---|
| .. | ||
| 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).