Skip to main content

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.

Advent of Code 2016 is a complete year — all 25 days solved, both parts. The year casts you as a visitor to Easter Bunny HQ, battling locked rooms, encrypted messages, and a security maze. Recurring themes include the Assembunny virtual machine (Days 12, 23, 25), MD5-based password generation (Days 5, 14), and BFS pathfinding through constrained mazes (Days 13, 17, 24). Every solution has a passing test suite; Day 25’s tests are marked as uncertain due to its unique halting condition.

Progress

Notable Solutions

Day 12 — Leonardo’s Monorail (Assembunny VM)

The solution introduces the AssemBunnyComputer class, a register-based virtual machine used across Days 12, 23, and 25. It supports four instructions: cpy (copy), inc (increment), dec (decrement), and jnz (jump-if-not-zero). Registers are stored in a defaultdict(int). Day 23 extends the VM with a tgl (toggle) instruction, and Day 25 adds an out instruction for generating clock signals.
class AssemBunnyComputer:
    def run(self) -> None:
        while self.pc in range(len(self._program)):
            instruction, *args = self.current_instruction
            getattr(self, instruction)(*args)
            self.pc += 1

Day 5 — How About a Nice Game of Chess?

MD5 hashing with an incrementing counter to find password characters — the same pattern as Day 4 in 2015. Part 1 collects the 6th hex digit of each hash that starts with five zeroes. Part 2 uses the 6th digit as a position index and the 7th digit as the character, filling positions 0–7 in order and ignoring out-of-range or already-filled positions.

Day 13 — A Maze of Twisty Little Cubicles

The maze is not stored as a grid — instead, whether coordinate (x, y) is a wall is determined on-the-fly by checking if x*x + 3*x + 2*x*y + y + y*y + puzzle_input has an odd number of set bits. BFS finds the shortest path to the target in Part 1. Part 2 counts all locations reachable within 50 steps using the same BFS capped by depth.
Puzzle inputs are personal and are not stored in this repository. Solutions fetch input at runtime using aocd (aocd.data).

Build docs developers (and LLMs) love