Awesome
Advent of Code 2022
All my Advent of Code repos:
- AoC 2015 in Nim, Python
- AoC 2016 in Python, Clojure (+ visualizations)
- 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 (this repo)
- AoC 2023 in Clojure
- AoC 2024 in Clojure (Clerk notebooks)
Last year's Python was fun, so I'll keep it as my main language this year.
But to keep things interesting and (too?) challenging, I'll make my first learning steps in Clojure. If you have any advice how to improve my Clojure solutions, please open an issue or comment in any other way.
Solutions
Task | Python Solution | Clojure Solution | Comment for Python solution |
---|---|---|---|
Day 00: Helper file | aoc.py | aoc.clj | Utilities I use to solve the tasks. |
Day 01 | day01.py | day01.clj | Unexpected double-newline input for the first task. |
Day 02 | day02.py | day02.clj | Using match statement (Python 3.10+). |
Day 03 | day03.py | day03.clj | I like my Clojure solution more. |
Day 04 | day04.py | day04.clj | Look ma, no sets! |
Day 05 | day05.py | day05.clj | Parsing the input like a real man. |
Day 06 | day06.py | day06.clj | The easiest one so far. |
Day 07 | day07.py | day07.clj | The toughest one so far. |
Day 08 | day08.py | day08.clj | Look pa, no dicts! |
Day 09 | day09.py | day09.clj | Complex numbers --> simple solution. |
Day 10 | day10.py | day10.clj | Advent of off-by-one errors. |
Day 11 | day11.py | day11.clj | Classy monkeys. |
Day 12 | day12.py | day12.clj | Start from the end, obviously. |
Day 13 | day13.py | day13.clj | eval + pattern matching on types. |
Day 14 | day14.py | day14.clj | Both parts in one go. |
Day 15 | day15.py | day15.clj | Scan row-by-row for a hole in the scanned positions. |
Day 16 | day16.py | day16.clj | Floyd-Warshall and only traverse through the valves with positive flow. |
Day 17 | day17.py | day17.clj | The traditional "find a cycle" task. |
Day 18 | day18.py | day18.clj | Cubes are just points in 3D. |
Day 19 | day19.py | day19.clj | Ungh. |
Day 20 | day20.py | day20.clj | The traditional "just use deque.rotate " task. |
Day 21 | day21.py | day21.clj | DFS and binary search. |
Day 22 | day22.py | day22.clj | Hardcoded the wrapping rules for my input. Sorry, not sorry. |
Day 23 | day23.py | day23.clj | |
Day 24 | day24.py | day24.clj | Set operations for the win. |
Day 25 | day25.py | day25.clj | +/- 2 for an easy conversion. |