Home

Awesome

Advent of Code 2023

All my Advent of Code repos:

 

Last year I have used Clojure for the first time. I really liked the language (I've also written about how to make Clojure solutions faster), and I've decided it will be my main language this year.

As a preparation for this year, I used Clojure for AoC 2016 and I experimented with the quil library to make some visualizations.

This year, I plan to do as much visualizations as I can, using the same library.

 

I currently don't have the time to solve in multiple languages, but I suspect I'll add solutions in some different language at some later date.

 

TaskClojureComment
Day 00: Helper fileaoc.cljUtilities I use to solve the tasks.
Day 01day01.cljTougher than expected for day 1.
Day 02day02.cljImmediately calculate maximums.
Day 03day03.cljTedious parsing.
Day 04day04.cljSet as a predicate for keep.
Day 05day05.cljToughest one so far.
Day 06day06.cljWill the real Day1 please stand up?
Day 07day07.cljChanging card representation is the real MVP.
Day 08day08.cljUnderwhelming to see that to be solution for part 2.
Day 09day09.clj.esreveR
Day 10day10.cljNo BFS needed.
Day 11day11.cljOff-by-one trap!
Day 12day12.cljImmutability, meet my friend atom.
Day 13day13.cljMy helper functions to the rescue.
Day 14day14.cljVery slow solution. There must be a better way.
Day 15day15.cljAdvent of Reading.
Day 16day16.cljIs this a cousin of Day 10?
Day 17day17.cljConsider only L/R directions, and then go straight as far as you can.
Day 18day18.cljTIL about Shoelace formula and Pick's theorem.
Day 19day19.cljSimpler ranges than Day 5.
Day 20day20.cljSome manual searching through the input needed.
Day 21day21.cljPolynomial interpolation.
Day 22day22.cljJenga!
Day 23day23.cljCompressing the graph for part 2.
Day 24day24.cljDon't ask me how this works.
Day 25day25.cljMonte Carlo to find "hot" edges.

 

<!-- ## Visualizations -->