How dziarnowskij/aoc_2025 works
This repository is a collection of independent Advent of Code puzzle solvers, not a single application pipeline. The principal workflow is to run a day-and-part script, which reads puzzle input, applies that challenge’s rules, and prints a result. The README describes distinct challenges spanning dial counting, pattern and range analysis, grid removal, calculations, simulations, geometry, graph paths, machine states, and shape fitting. Sampled code confirms several algorithms and use of geometry helpers; links for unsampled solutions are limited to their documented challenge roles.
Main entry points: day_01/part_1.py Dial stops · day_01/part_2.py Dial crossings · day_02/part_1.py Repeated IDs · day_02/part_2.py Pattern IDs
Components 28
Numbers and text
- Dial stops
day_01/part_1.py - Dial crossings
day_01/part_2.py - Repeated IDs
day_02/part_1.py - Pattern IDs
day_02/part_2.py - Two batteries
day_03/part_1.py - Twelve batteries
day_03/part_2.py - Fresh ingredients
day_05/part_1.py - Fresh ID ranges
day_05/part_2.py - Worksheet arithmetic
day_06/part_1.py - Vertical arithmetic
day_06/part_2.py
Grids and simulation
- Accessible rolls
day_04/part_1.py - Roll removal
day_04/part_2.py - Beam splits
day_07/part_1.py - Beam timelines
day_07/part_2.py
Geometry and circuits
- Point circuits
day_08/part_1.py - Circuit connections
day_08/part_2.py - Rectangle area
day_09/part_1.py - Enclosed rectangles
day_09/part_2.py - Light switches
day_10/part_1.py - Joltage controls
day_10/part_2.py
Networks and packing
- Reactor paths
day_11/part_1.py - Required paths
day_11/part_2.py - Farm shapes
day_12/part_1.py
Shared utilities
- 2D geometry
utils/geometry.py - 3D geometry
utils/geometry3D.py
Other components
- Solver user
- Puzzle input
- Printed answer
Connections 48
- Solver user → Dial stops: runs
- Solver user → Dial crossings: runs
- Solver user → Repeated IDs: runs
- Solver user → Pattern IDs: runs
- Solver user → Two batteries: runs
- Solver user → Twelve batteries: runs
- Solver user → Accessible rolls: runs
- Solver user → Roll removal: runs
- Solver user → Fresh ingredients: runs
- Solver user → Fresh ID ranges: runs
- Solver user → Worksheet arithmetic: runs
- Solver user → Vertical arithmetic: runs
- Solver user → Beam splits: runs
- Solver user → Beam timelines: runs
- Solver user → Point circuits: runs
- Solver user → Circuit connections: runs
- Solver user → Rectangle area: runs
- Solver user → Enclosed rectangles: runs
- Solver user → Light switches: runs
- Solver user → Joltage controls: runs
- Solver user → Reactor paths: runs
- Solver user → Required paths: runs
- Solver user → Farm shapes: runs
- Puzzle input → Dial stops: reads
- Puzzle input → Dial crossings: reads
- Puzzle input → Repeated IDs: reads
- Puzzle input → Pattern IDs: reads
- Puzzle input → Two batteries: reads
- Puzzle input → Twelve batteries: reads
- Puzzle input → Accessible rolls: reads
- Puzzle input → Roll removal: reads
- Puzzle input → Fresh ingredients: reads
- Puzzle input → Fresh ID ranges: reads
- Puzzle input → Worksheet arithmetic: reads
- Puzzle input → Vertical arithmetic: reads
- Puzzle input → Beam splits: reads
- Puzzle input → Beam timelines: reads
- Puzzle input → Point circuits: reads
- Puzzle input → Circuit connections: reads
- Puzzle input → Rectangle area: reads
- Puzzle input → Enclosed rectangles: reads
- Puzzle input → Light switches: reads
- Puzzle input → Joltage controls: reads
- Puzzle input → Reactor paths: reads
- Puzzle input → Required paths: reads
- Puzzle input → Farm shapes: reads
- Dial stops → Printed answer: prints
- Dial crossings → Printed answer: prints