Advent of Code 2020 is a complete year — all 25 days solved, both parts, with tests passing for every puzzle. The year’s theme follows a tropical vacation disrupted by global chaos, featuring puzzles centred on passport validation, bag rules, cellular automata, and even a sea-monster hunt inside a jigsaw of image tiles. Day 1 earned a top-100 score on the global leaderboard (38 points for Part 1).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 | Report Repair | ⭐ | ⭐ | ✅ |
| 02 | Password Philosophy | ⭐ | ⭐ | ✅ |
| 03 | Toboggan Trajectory | ⭐ | ⭐ | ✅ |
| 04 | Passport Processing | ⭐ | ⭐ | ✅ |
| 05 | Binary Boarding | ⭐ | ⭐ | ✅ |
| 06 | Custom Customs | ⭐ | ⭐ | ✅ |
| 07 | Handy Haversacks | ⭐ | ⭐ | ✅ |
| 08 | Handheld Halting | ⭐ | ⭐ | ✅ |
| 09 | Encoding Error | ⭐ | ⭐ | ✅ |
| 10 | Adapter Array | ⭐ | ⭐ | ✅ |
| 11 | Seating System | ⭐ | ⭐ | ✅ |
| 12 | Rain Risk | ⭐ | ⭐ | ✅ |
| 13 | Shuttle Search | ⭐ | ⭐ | ✅ |
| 14 | Docking Data | ⭐ | ⭐ | ✅ |
| 15 | Rambunctious Recitation | ⭐ | ⭐ | ✅ |
| 16 | Ticket Translation | ⭐ | ⭐ | ✅ |
| 17 | Conway Cubes | ⭐ | ⭐ | ✅ |
| 18 | Operation Order | ⭐ | ⭐ | ✅ |
| 19 | Monster Messages | ⭐ | ⭐ | ✅ |
| 20 | Jurassic Jigsaw | ⭐ | ⭐ | ✅ |
| 21 | Allergen Assessment | ⭐ | ⭐ | ✅ |
| 22 | Crab Combat | ⭐ | ⭐ | ✅ |
| 23 | Crab Cups | ⭐ | ⭐ | ✅ |
| 24 | Lobby Layout | ⭐ | ⭐ | ✅ |
| 25 | Combo Breaker | ⭐ | ⭐ | ✅ |
Notable Solutions
Day 4 — Passport Processing
Part 1 checks that all required fields (byr, iyr, eyr, hgt, hcl, ecl, pid) are present. Part 2 adds strict validation: birth year must be a 4-digit number in [1920, 2002], height must be in the correct range for cm or in units, hair colour must match #rrggbb, and so on. Each rule is handled by an explicit if branch, making the validation logic easy to audit.
Day 17 — Conway Cubes
The solution is dimension-agnostic. Active cells are stored in aset[Point] where Point is a tuple of arbitrary length. A cached neighbors function generates all 3^n - 1 neighbours for an n-dimensional point using itertools.product. Part 1 runs 3-D Game-of-Life for 6 cycles; Part 2 simply passes dimensions=4 to the same solve function.
Day 20 — Jurassic Jigsaw
EachTile wraps a NumPy array so that rotations and reflections are handled with np.rot90 and np.flip. Tiles are matched edge-to-edge by comparing border strings. Once all tiles are assembled into a grid, the combined image is scanned for the sea-monster pattern using a set of known relative offsets, and the total # count minus found sea-monster # cells gives the answer.
Puzzle inputs are personal and are not stored in this repository. Solutions fetch input at runtime using aocd (
aocd.data).