Advent of Code 2025 is the most recent event in this repository. As of the current snapshot, 12 days are covered — all with both parts fully solved — spanning a wide variety of puzzle types including string parsing, column-wise arithmetic, range merging, graph path-counting, and computational geometry.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/cj81499/advent-of-code/llms.txt
Use this file to discover all available pages before exploring further.
Puzzle inputs are personal and are not included in the repository. To run
solutions against your own input, use
aocd after setting your
session cookie. See the Solution Structure page for
full setup instructions.Progress Table
| Day | Title | Part 1 | Part 2 | Tests |
|---|---|---|---|---|
| 01 | Secret Entrance | ⭐ | ⭐ | ✅ |
| 02 | Gift Shop | ⭐ | ⭐ | ✅ |
| 03 | Lobby | ⭐ | ⭐ | ✅ |
| 04 | Printing Department | ⭐ | ⭐ | ✅ |
| 05 | Cafeteria | ⭐ | ⭐ | ✅ |
| 06 | Trash Compactor | ⭐ | ⭐ | ✅ |
| 07 | Laboratories | ⭐ | ⭐ | ✅ |
| 08 | Playground | ⭐ | ⭐ | ✅ |
| 09 | Movie Theater | ⭐ | ⭐ | ✅ |
| 10 | Factory | ⭐ | ⭐ | ✅ |
| 11 | Reactor | ⭐ | ⭐ | ✅ |
| 12 | Christmas Tree Farm | ⭐ | ⭐ | ❓ |
Personal Leaderboard
Times are relative to puzzle unlock (midnight EST). Entries marked>24h indicate the puzzle was solved more than a day after release.
Notable Puzzles
Day 6 — Trash Compactor
Day 6 involves evaluating arithmetic problems laid out in a grid where the columns themselves encode the operands and the operator. The solution transposes the input to work column-by-column, parsing+ and * operators from the last row of each column group. Part 1 applies the operator row-by-row (treating each row as an independent integer), while Part 2 concatenates each column into a single large number before applying the same operator. The use of Python’s zip(*it, strict=True) transpose idiom and a StrEnum-based Operator abstraction keeps both parts neatly unified.
Day 9 — Movie Theater
Day 9 is a computational-geometry puzzle. Points are parsed from the input and treated as vertices of a polygon. Part 1 finds the pair of points that forms the largest axis-aligned rectangle, regardless of containment. Part 2 adds the constraint that the rectangle must lie inside the polygon formed by all the points — solved elegantly using the Shapely library’sPolygon.contains() check. This is a great example of reaching for a well-established geometry library rather than re-implementing containment tests from scratch.
Day 11 — Reactor
Day 11 presents a directed-graph path-counting problem. Given a device graph where each node has a set of named outputs, Part 1 counts the number of distinct paths from"you" to "out". Part 2 adds the requirement that every path must pass through both a "fft" node and a "dac" node before reaching "out". The solution uses @functools.cache to memoize recursive path counts, carrying seen_fft and seen_dac boolean flags through the recursion to avoid redundant re-computation. The Part 2 traversal starts from "svr" (the entry node in the actual puzzle input).