My solutions to the Advent of Code challenges are found in this repository. The solutions try to keep as much as possible to the standard libraries of C#, but a few helper libraries are used for convenience, as well as the unfortunate occasional Z3. The rest of the code found in here which isn't the solvers are my completely self-made personal libraries purely for the purpose of doing these challenges, from vectors, priority queues, extensions, etc.
My solutions are meant to work while being as clear as possible. Speed, efficiency, and algorithmic complexity are not my first concern, as long as it's not stupidly slow. Some answers might be naive ways to deal with certain problems, but they'd also be the simpler way in this case, and this is what I'm going for. Sometimes I do optimize down some solutions when I have a goo idea, but at the end of the day im mostly trying to have fun with these, so the actual thing I optimize from day to day may vary.
This repo fetches inputs automatically from the Advent of Code website, and does follow the automation guidelines on the /r/adventofcode community wiki.
- Outbound calls are throttled to every 900 seconds (15 minutes) by storing the last call timestamp locally to preserve throttling between runs
- Once inputs are downloaded, they are cached locally and reused as needed
- The User-Agent header is set to me, the maintainer of this repo