On this page:
Advent of Code 2016

Advent of Code 2016

Joel Dueck <joel@jdueck.net>

Advent of Code is a series of programming puzzles. I’m going to do my best to keep up, producing solutions in the Racket programming language.

Obviously, if you’re participating yourself (or thinking of doing so) don’t spoil it for yourself by reading these solutions ahead of time!

I’m using this event as an opportunity to learn Racket’s literate programming dialect, and to improve my grasp of Racket. For the overall format, I am following the template created by Matthew Butterick in his writing on last year’s puzzles.

I have a job and kids, and most of the time my solutions are going to be whatever I can figure out during my lunch breaks. I’m a relative newcomer to Racket and functional programming. If you have constructive input I’d very much welcome it—just keep in mind I may not have time to respond until I’ve finished the event.

Update, 28 Dec 2016: Christmas is over, and clearly I didn’t finish all the puzzles in time, but I’m still puttering away on them when I can spare the time!

    1 Day 1: Finding Headquarters

      1.1 How Far Away is Easter Bunny HQ?

        1.1.1 Some debugging functions

        1.1.2 Turning and Walking

        1.1.3 Parsing the input

      1.2 How far away is the first location you visit twice?

      1.3 Improvements

      1.4 Testing Day 1

    2 Day 2: Hacking Into the Bathroom

      2.1 What is the access code for the bathroom?

      2.2 What is the actual access code?

      2.3 Testing Day 2

    3 Day 3: Testing Triangles

      3.1 How many of the listed triangles are possible?

      3.2 How many triangles are possible when reading the list vertically?

      3.3 Testing Day 3

    4 Day 4: Decrypting the Room List

      4.1 What is the sum of the sectors of the non-fake rooms?

      4.2 What’s the sector ID of the room where north pole objects are stored?

      4.3 Testing Day 4

    5 Day 5: Wargames-Style Password Hacking

      5.1 What is the password for the first door?

      5.2 What is the password to the second door?

      5.3 Extra Credit

        5.3.1 Animated Password Hacking

        5.3.2 Performance

      5.4 Testing Day 5

    6 Day 6: Signals and Noise

      6.1 What is the the error-corrected message?

      6.2 What is the actual message Santa is sending?

      6.3 Testing Day 6

    7 Day 7: IPv7 ?!

      7.1 How many of the IP addresses support TLS?

      7.2 How many of the IPs support SSL?

      7.3 Testing Day 7

    8 Day 8: A Small Screen

      8.1 How many of the screen’s pixels do the instructions leave on?

      8.2 What is the password displayed on the screen?

      8.3 Brilliant Personal Anecdote

      8.4 Testing Day 8