Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/narimiran/adventofcode2023

My solutions for Advent of Code 2023
https://github.com/narimiran/adventofcode2023

advent-of-code advent-of-code-2023 adventofcode adventofcode2023 clojure lisp

Last synced: 8 days ago
JSON representation

My solutions for Advent of Code 2023

Awesome Lists containing this project

README

        

# Advent of Code 2023

All my Advent of Code repos:

* [AoC 2015 in Nim, Python](https://github.com/narimiran/advent_of_code_2015)
* [AoC 2016 in Python, Clojure](https://github.com/narimiran/advent_of_code_2016)
* [AoC 2017 in Nim, OCaml, Python](https://github.com/narimiran/AdventOfCode2017)
* [AoC 2018 in Nim, Python, Racket](https://github.com/narimiran/AdventOfCode2018)
* [AoC 2019 in OCaml, Python](https://github.com/narimiran/AdventOfCode2019)
* [AoC 2020 in Nim, one liner-y Python, Racket](https://github.com/narimiran/AdventOfCode2020)
* [AoC 2021 in Python, Racket](https://github.com/narimiran/AdventOfCode2021)
* [AoC 2022 in Python, Clojure](https://github.com/narimiran/AdventOfCode2022)
* [AoC 2023 in Clojure](https://github.com/narimiran/AdventOfCode2023) (this repo)

 

[Last year](https://github.com/narimiran/AdventOfCode2022) I have used Clojure for the first time.
I really liked the language (I've also written about [how to make Clojure solutions faster](https://narimiran.github.io/2023/01/17/advent-of-clojure.html)), 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](https://github.com/narimiran/advent_of_code_2016#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.

 

Task | Clojure | Comment
--- | --- | ---
Day 00: Helper file | [aoc.clj](clojure/aoc.clj) | Utilities I use to solve the tasks.
[Day 01](http://adventofcode.com/2023/day/1) | [day01.clj](clojure/day01.clj) | Tougher than expected for day 1.
[Day 02](http://adventofcode.com/2023/day/2) | [day02.clj](clojure/day02.clj) | Immediately calculate maximums.
[Day 03](http://adventofcode.com/2023/day/3) | [day03.clj](clojure/day03.clj) | Tedious parsing.
[Day 04](http://adventofcode.com/2023/day/4) | [day04.clj](clojure/day04.clj) | Set as a predicate for `keep`.
[Day 05](http://adventofcode.com/2023/day/5) | [day05.clj](clojure/day05.clj) | Toughest one so far.
[Day 06](http://adventofcode.com/2023/day/6) | [day06.clj](clojure/day06.clj) | Will the real Day1 please stand up?
[Day 07](http://adventofcode.com/2023/day/7) | [day07.clj](clojure/day07.clj) | Changing card representation is the real MVP.
[Day 08](http://adventofcode.com/2023/day/8) | [day08.clj](clojure/day08.clj) | Underwhelming to see _that_ to be solution for part 2.
[Day 09](http://adventofcode.com/2023/day/9) | [day09.clj](clojure/day09.clj) | .esreveR
[Day 10](http://adventofcode.com/2023/day/10) | [day10.clj](clojure/day10.clj) | No BFS needed.
[Day 11](http://adventofcode.com/2023/day/11) | [day11.clj](clojure/day11.clj) | Off-by-one trap!
[Day 12](http://adventofcode.com/2023/day/12) | [day12.clj](clojure/day12.clj) | Immutability, meet my friend `atom`.
[Day 13](http://adventofcode.com/2023/day/13) | [day13.clj](clojure/day13.clj) | My helper functions to the rescue.
[Day 14](http://adventofcode.com/2023/day/14) | [day14.clj](clojure/day14.clj) | Very slow solution. There must be a better way.
[Day 15](http://adventofcode.com/2023/day/15) | [day15.clj](clojure/day15.clj) | Advent of Reading.
[Day 16](http://adventofcode.com/2023/day/16) | [day16.clj](clojure/day16.clj) | Is this a cousin of Day 10?
[Day 17](http://adventofcode.com/2023/day/17) | [day17.clj](clojure/day17.clj) | Consider only L/R directions, and then go straight as far as you can.
[Day 18](http://adventofcode.com/2023/day/18) | [day18.clj](clojure/day18.clj) | TIL about Shoelace formula and Pick's theorem.
[Day 19](http://adventofcode.com/2023/day/19) | [day19.clj](clojure/day19.clj) | Simpler ranges than Day 5.
[Day 20](http://adventofcode.com/2023/day/20) | [day20.clj](clojure/day20.clj) | Some manual searching through the input needed.
[Day 21](http://adventofcode.com/2023/day/21) | [day21.clj](clojure/day21.clj) | Polynomial interpolation.
[Day 22](http://adventofcode.com/2023/day/22) | [day22.clj](clojure/day22.clj) | Jenga!
[Day 23](http://adventofcode.com/2023/day/23) | [day23.clj](clojure/day23.clj) | Compressing the graph for part 2.
[Day 24](http://adventofcode.com/2023/day/24) | [day24.clj](clojure/day24.clj) | Don't ask me how this works.
[Day 25](http://adventofcode.com/2023/day/25) | [day25.clj](clojure/day25.clj) | Monte Carlo to find "hot" edges.