Advent of Code 2015 is a complete year — all 25 days solved, both parts. As the very first AoC event, 2015 established many of the series’ signature puzzle styles: navigating infinite grids, mining MD5 hashes, simulating circuit logic, parsing JSON, and running simple virtual machines. Every solution carries a passing test suite; Day 16 (“Aunt Sue”) has a question-mark on its test status because the answer depends on recognising specific input values. The entire year was solved retrospectively, with all submissions arriving long after the original competition.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.
Progress
| Day | Title | Part 1 | Part 2 | Tests |
|---|---|---|---|---|
| 01 | Not Quite Lisp | ⭐ | ⭐ | ✅ |
| 02 | I Was Told There Would Be No Math | ⭐ | ⭐ | ✅ |
| 03 | Perfectly Spherical Houses in a Vacuum | ⭐ | ⭐ | ✅ |
| 04 | The Ideal Stocking Stuffer | ⭐ | ⭐ | ✅ |
| 05 | Doesn’t He Have Intern-Elves For This? | ⭐ | ⭐ | ✅ |
| 06 | Probably a Fire Hazard | ⭐ | ⭐ | ✅ |
| 07 | Some Assembly Required | ⭐ | ⭐ | ✅ |
| 08 | Matchsticks | ⭐ | ⭐ | ✅ |
| 09 | All in a Single Night | ⭐ | ⭐ | ✅ |
| 10 | Elves Look, Elves Say | ⭐ | ⭐ | ✅ |
| 11 | Corporate Policy | ⭐ | ⭐ | ✅ |
| 12 | JSAbacusFramework.io | ⭐ | ⭐ | ✅ |
| 13 | Knights of the Dinner Table | ⭐ | ⭐ | ✅ |
| 14 | Reindeer Olympics | ⭐ | ⭐ | ✅ |
| 15 | Science for Hungry People | ⭐ | ⭐ | ✅ |
| 16 | Aunt Sue | ⭐ | ⭐ | ❓ |
| 17 | No Such Thing as Too Much | ⭐ | ⭐ | ✅ |
| 18 | Like a GIF For Your Yard | ⭐ | ⭐ | ✅ |
| 19 | Medicine for Rudolph | ⭐ | ⭐ | ✅ |
| 20 | Infinite Elves and Infinite Houses | ⭐ | ⭐ | ✅ |
| 21 | RPG Simulator 20XX | ⭐ | ⭐ | ✅ |
| 22 | Wizard Simulator 20XX | ⭐ | ⭐ | ✅ |
| 23 | Opening the Turing Lock | ⭐ | ⭐ | ✅ |
| 24 | It Hangs in the Balance | ⭐ | ⭐ | ✅ |
| 25 | Let It Snow | ⭐ | ⭐ | ✅ |
Notable Solutions
Day 4 — The Ideal Stocking Stuffer (MD5 Mining)
A brute-force MD5 hash search: find the lowest positive integer that, when appended to the puzzle input, produces a hex digest starting with five (Part 1) or six (Part 2) zeroes. The solution uses Python’shashlib.md5 with itertools.count to iterate over candidates and returns the first match.
Day 7 — Some Assembly Required (Logic Gates)
The wire network is parsed into adict[str, str] mapping each wire name to its definition expression. A recursive signal_on function evaluates any wire by parsing its expression — handling AND, OR, LSHIFT, RSHIFT, NOT, literals, and wire references. Results are memoised with @functools.cache (using an immutable frozendict as the circuit argument) to avoid redundant recomputation. Part 2 overrides wire b with Part 1’s answer and re-evaluates.
Day 3 — Perfectly Spherical Houses in a Vacuum
Santa follows a sequence of^v<> movement instructions on an infinite grid, delivering presents to every house he visits. Part 1 tracks Santa’s single path with a set of visited coordinates. Part 2 splits the instruction stream between Santa and Robo-Santa using itertools.islice with a step of 2, then unions the two visited sets.
Puzzle inputs are personal and are not stored in this repository. Solutions fetch input at runtime using aocd (
aocd.data).