These are my solutions to Advent of Code, a set of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language. A new set of puzzles is released each year from December 1st until December 25th.
These solutions are often not my first attempt, and are usually edited after fact. I usually refactor puzzles after they are solved, and re-work older puzzles for performance, clarity, and cleverness. As I work on new puzzles I'll sometimes factor out a helper or data type from a previous puzzle to share them.
As well as the puzzle solutions, there is also a puzzle runner here, that can run and verify and and all of the solutions. It has features that are helpful to verify that my refactoring don't break anything, and also make solving the puzzles easier and faster.