Advent of Code 2017 is a complete year — all 25 days solved, both parts. The year has a playful computer-science theme: from circular buffers and hash functions to a Turing machine finale. Standout puzzles include the reusable Knot Hash algorithm (Days 10 and 14), the Spinlock circular buffer (Day 17), the Duet dual-program VM (Day 18), and the recursive tower balancing puzzle (Day 7). All solutions carry tests; Day 23 has a question-mark on its test status due to input-dependent behaviour.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 | Inverse Captcha | ⭐ | ⭐ | ✅ |
| 02 | Corruption Checksum | ⭐ | ⭐ | ✅ |
| 03 | Spiral Memory | ⭐ | ⭐ | ✅ |
| 04 | High-Entropy Passphrases | ⭐ | ⭐ | ✅ |
| 05 | A Maze of Twisty Trampolines, All Alike | ⭐ | ⭐ | ✅ |
| 06 | Memory Reallocation | ⭐ | ⭐ | ✅ |
| 07 | Recursive Circus | ⭐ | ⭐ | ✅ |
| 08 | I Heard You Like Registers | ⭐ | ⭐ | ✅ |
| 09 | Stream Processing | ⭐ | ⭐ | ✅ |
| 10 | Knot Hash | ⭐ | ⭐ | ✅ |
| 11 | Hex Ed | ⭐ | ⭐ | ✅ |
| 12 | Digital Plumber | ⭐ | ⭐ | ✅ |
| 13 | Packet Scanners | ⭐ | ⭐ | ✅ |
| 14 | Disk Defragmentation | ⭐ | ⭐ | ✅ |
| 15 | Dueling Generators | ⭐ | ⭐ | ✅ |
| 16 | Permutation Promenade | ⭐ | ⭐ | ✅ |
| 17 | Spinlock | ⭐ | ⭐ | ✅ |
| 18 | Duet | ⭐ | ⭐ | ✅ |
| 19 | A Series of Tubes | ⭐ | ⭐ | ✅ |
| 20 | Particle Swarm | ⭐ | ⭐ | ✅ |
| 21 | Fractal Art | ⭐ | ⭐ | ✅ |
| 22 | Sporifica Virus | ⭐ | ⭐ | ✅ |
| 23 | Coprocessor Conflagration | ⭐ | ⭐ | ❓ |
| 24 | Electromagnetic Moat | ⭐ | ⭐ | ✅ |
| 25 | The Halting Problem | ⭐ | ⭐ | ✅ |
Notable Solutions
Day 10 — Knot Hash
The Knot Hash is a custom hash algorithm used as a primitive in both Day 10 and Day 14. Part 1 is a single round of in-place circular-list reversal. Part 2 implements the full hash: the input string is converted to ASCII codes, a fixed suffix[17, 31, 73, 47, 23] is appended, and 64 rounds of reversal are run. The 256-byte sparse hash is condensed to a 16-byte dense hash by XOR-ing each 16-element chunk, then hex-encoded.
Day 7 — Recursive Circus
Part 1 finds the root of a weighted tree by identifying the one program that is never listed as a child. Part 2 detects the single unbalanced node — the one whose subtree weight differs from all its siblings — and computes what its weight should be. The solution walks the tree recursively, propagating subtree weights upward.Day 18 — Duet
Part 1 interprets a register-based assembly language where thesnd instruction plays a “sound” and rcv recovers it. Part 2 reinterprets snd/rcv as message-passing channels between two programs running concurrently. The two Program instances share queues and alternate execution until both are blocked, then the number of values sent by Program 1 is the answer.
Puzzle inputs are personal and are not stored in this repository. Solutions fetch input at runtime using aocd (
aocd.data).