All my Advent of Code repos:
- AoC 2015 in Nim, Python
- AoC 2016 in Python, Clojure (+ visualizations) (this repo)
- AoC 2017 in Nim, OCaml, Python
- AoC 2018 in Nim, Python, Racket
- AoC 2019 in OCaml, Python
- AoC 2020 in Nim, one liner-y Python, Racket
- AoC 2021 in Python, Racket
- AoC 2022 in Python, Clojure
- AoC 2023 in Clojure
- AoC 2024 in Clojure (Clerk notebooks)
First ten puzzles were solved as they were published, then came the infamous Dec 11 task, which crushed my hopes and motivation.
After some desperation, I've managed to solve first 20 puzzles before Christmas, then took a long break and finished all challenges on March 19th 2017.
Comments, suggestions and critiques are welcome.
2023 update:
- I solved several tasks in Clojure in November 2023, as a preparation for AoC 2023.
- I also did some visualizations. See below for gifs.
| Task |
Python |
Clojure |
| Dec 01: No Time for a Taxicab |
day_01.py |
day01.clj, day01_viz.clj |
| Dec 02: Bathroom Security |
day_02.py |
day02.clj, day02_viz.clj |
| Dec 03: Squares With Three Sides |
day_03.py, numpy |
day03.clj |
| Dec 04: Security Through Obscurity |
day_04.py |
day04.clj |
| Dec 05: How About a Nice Game of Chess |
day_05.py |
|
| Dec 06: Signals and Noise |
day_06.py |
day06.clj |
| Dec 07: Internet Protocol Version 7 |
day_07.py |
day07.clj |
| Dec 08: Two-Factor Authentication |
day_08.py |
day08.clj, day08_viz.clj |
| Dec 09: Explosives in Cyberspace |
day_09.py |
day09.clj |
| Dec 10: Balance Bots |
day_10.py |
day10.clj |
| Dec 11: Radioisotope Thermoelectric Generators |
day_11.py |
|
| Dec 12: Leonardo's Monorail |
day_12.py, literal |
day12.clj, day12_viz.clj |
| Dec 13: A Maze of Twisty Little Cubicles |
day_13.py |
day13.clj, day13_viz.clj |
| Dec 14: One-Time Pad |
day_14.py |
|
| Dec 15: Timing is Everything |
day_15.py |
day15.clj, day15_viz.clj |
| Dec 16: Dragon Checksum |
day_16.py |
|
| Dec 17: Two Steps Forward |
day_17.py |
|
| Dec 18: Like a Rogue |
day_18.py |
day18.clj |
| Dec 19: An Elephant Named Joseph |
day_19.py |
|
| Dec 20: Firewall Rules |
day_20.py |
day20.clj |
| Dec 21: Scrambled Letters and Hash |
day_21.py |
|
| Dec 22: Grid Computing |
day_22.py |
|
| Dec 23: Safe Cracking |
day_23.py, literal |
day23.clj |
| Dec 24: Air Duct Spelunking |
day_24.py |
|
| Dec 25: Clock Signal |
day_25.py |
day25.clj, day25_viz.clj |
Visualizations were done in Clojure, using quil library, and then converted to gif via ImageMagick.

Source: day01_viz.clj

Source: day02_viz.clj

Source: day08_viz.clj

Source: day12_viz.clj

Source: day13_viz.clj

Source: day15_viz.clj

Source: day25_viz.clj