Difficulty
A histogram of difficulty ratings for each day.
Languages click to filter
Some days were solved twice in different languages. Day 12 is the only day without a Python solution (Kotlin solution instead).
Runtime click a day
Wall clock, log scale, on 12 cores. Each day is the mean of ten runs.
Peak memory click a day
Peak resident set size of the process. Days 16 and 19 hold their entire search space in memory. Most other days stay near the interpreter baseline of 16 MB.
Runtime vs. difficulty click a point
The two days that dominate the suite are also the two hardest, but size of input explains nothing. All 25 puzzles together read only 278 KB, and the slowest day reads only 3.4 KB. Runtime here is a property of the search space, not the file.
Techniques click to filter
All 25 days
Open any day in the explorer →Calorie Counting
“My first Haskell program :)”
Haskell · Python53 lnDay 22/10Rock Paper Scissors
“Changed match to modulo operator.”
Python31 lnDay 32/10Rucksack Reorganization
“Completed day 3 puzzle.”
Python27 lnDay 41/10Camp Cleanup
“take each line "19-24,45-67" -> [19, 24, 45, 67]”
Python25 lnDay 53/10Supply Stacks
“we'll add the crates to the stacks in FILO order”
Python60 lnDay 61/10Tuning Trouble
“recursion is no bueno for this (problem gets bigger)”
Haskell · Python31 lnDay 74/10No Space Left On Device
“higher-order function <==> function that takes functions as input”
Python90 lnDay 83/10Treetop Tree House
“NOTE: Was trying to abuse higher-order functions. Obscure code below.”
Python47 lnDay 95/10Rope Bridge
“always put the tail on the same col or row as head if it moves (handles diagonals)”
Python98 lnDay 103/10Cathode-Ray Tube
“Saving progress.”
Python39 lnDay 116/10Monkey in the Middle
“least common multiple (LCM) of prime numbers (like we have) is just their product!”
Python70 lnDay 125/10Hill Climbing Algorithm
“clever solution: You can just run BFS from the destination and have it terminate when it reache…”
Kotlin85 lnDay 135/10Distress Signal
“Completed day 13.”
Python130 lnDay 145/10Regolith Reservoir
“Completed day 14.”
Python102 lnDay 156/10Beacon Exclusion Zone
“If a row intersects a circle (defined by the sensor and beacon pair), then there will be two x …”
Python82 lnDay 169/10Proboscidea Volcanium
“No!! Greedy doesn't work. What about top N candidates?”
Python258 ln✎ notesDay 178/10Pyroclastic Flow
“LCM doesn't work obstensibly. Leaving notes for later.”
Python157 lnDay 184/10Boiling Boulders
“bfs "expands" the outside air around the lava blob”
Python47 lnDay 1910/10Not Enough Minerals
“I needed A LOT of hints and references from the Advent of Code Reddit threads. I would not have…”
Python290 lnDay 207/10Grove Positioning System
“I still do not intuitively understand "moving the number forward/backward." P.S. See git histor…”
Python63 ln✎ notesDay 214/10Monkey Math
“we build an expression like below and solve it with a library”
Python94 lnDay 229/10Monkey Map
“Digressing, will come back with visualization.”
Python254 ln✎ notesDay 235/10Unstable Diffusion
“Completed day 23.”
Python88 lnDay 246/10Blizzard Basin
“Massive speedup by caching blizzard movements :D”
Python114 lnDay 254/10Full of Hot Air
“Still trying to find pattern...”
Python71 ln