This repository contains my solutions for Advent of Code, mostly in Go.
Here's a map of what's in this repository.
- Documentation
- Puzzle diaries, i.e., notes written during the contests:
- Some notes on the earlier puzzles, solved outside the actual contest time:
- Go packages
20??/*
: Individual AoC puzzle solutions. If there's any code shared between multiple puzzles that's still specific to one year, it's also in here. The top-level subpackage for each year serves two functions: it imports all the days (so other packages can get them all as a group), and also contains a unit test to verify each puzzle using the puzzle inputs and outputs in thetestdata/YYYY/dayDD.{txt,out}
files.cmd/aoc
: Multipurpose binary to execute any of the puzzles.glue
: Framework code so that the individual puzzle solutions can register solvers (and possibly other related utilities) for the binary via init functions.util
: Utility code useful for solutions across years. Of special note are the typesutil.Level
(for 2D roguelike style data) andutil.Graph
(for labeled digraphs). There are also two packages below this one:util/fn
: Very non-idiomatic-Go higher order functions, for conciseness.util/ix
: Integer functions that show up a lot in AoC puzzles.
- Python code
2019-py
: The initial 2019 solutions I wrote in Python, before starting this whole Go adventure. May contain assorted odds and ends as well.vis
: Data visualization code. See vis/readme.md.
- Esoteric languages
eso/*/*.blsq
: Solutions in Burlesque.eso/*/*.b98
: Solutions in (Be)funge 98.