/advent-of-code

My C# .NET solutions to the ever popular Advent of Code

Primary LanguageC#MIT LicenseMIT

advent-of-code

My Favourite Puzzles and Solutions

2023

Puzzle My Solution Date Topic(s) Difficulty
Gear Ratios Solution 2023-03 Vectors 🟢 Easy
If You Give A Seed A Fertilizer Solution 2023-05 Math 🔴 Hard
Hot Springs Solution 2023-12 String Parsing 🔴 Hard
Aplenty Solution 2023-19 String Parsing, Math 🟡 Medium
Step Counter Solution 2023-21 Vectors, Math 🔴 Hard
Never Tell Me The Odds Solution 2023-24 Vectors, Math 🔴 Hard

2022

Puzzle My Solution Date Topic(s) Difficulty
Treetop Tree House Solution 2022-08 Vectors 🟢 Easy
Rope Bridge Solution 2022-09 Vectors 🟡 Medium
Cathode-Ray Tube Solution 2022-10 Assembly 🟡 Medium
Beacon Exclusion Zone Solution 2022-15 Vectors 🟡 Medium
Proboscidea Volcanium Solution 2022-16 Graphs, Recursion 🔴 Hard
Not Enough Minerals Solution 2022-19 Graphs, Recursion 🔴 Hard

2021

Puzzle My Solution Date Topic(s) Difficulty
Lanternfish Solution 2021-06 Math, Simulation 🟡 Medium
Syntax Scoring Solution 2021-10 String Parsing 🟢 Easy
Passage Pathing Solution 2021-12 Graphs, Recursion 🟡 Medium
Transparent Origami Solution 2021-13 Vectors 🟢 Easy
Packet Decoder Solution 2021-16 String Parsing 🟡 Medium
Beacon Scanner Solution 2021-19 Vectors 🔴 Hard

2020

Puzzle My Solution Date Topic(s) Difficulty
Passport Processing Solution 2020-04 Regular Expressions 🟡 Medium
Handy Haversacks Solution 2020-07 Graphs, Recursion 🟡 Medium
Rain Risk Solution 2020-12 Vectors 🟢 Easy
Operation Order Solution 2020-18 String Parsing, Math 🟡 Medium
Monster Messages Solution 2020-19 Formal Language 🔴 Hard
Jurassic Jigsaw Solution 2020-20 Vectors 🔴 Hard

2019

Puzzle My Solution Date Topic(s) Difficulty
Crossed Wires Solution 2019-03 Vectors 🟢 Easy
Universal Orbit Map Solution 2019-06 Graphs, Recursion 🟢 Easy
The N-Body Problem Solution 2019-12 Math 🔴 Hard
Care Package Solution 2019-13 Int Code 🟡 Medium
Donut Maze Solution 2019-20 Graphs 🔴 Hard
Slam Shuffle Solution 2019-22 Math 🔴 Hard

2018

Puzzle My Solution Date Topic(s) Difficulty
Alchemical Reduction Solution 2018-05 Simulation 🟢 Easy
Chronal Coordinates Solution 2018-06 Vectors 🟡 Medium
Chronal Charge Solution 2018-11 Vectors 🔴 Hard
Reservoir Research Solution 2018-17 Vectors 🟡 Medium
Mode Maze Solution 2018-22 Graphs 🔴 Hard
Experimental Emergency Teleportation Solution 2018-23 Vectors 🔴 Hard

2017

Puzzle My Solution Date Topic(s) Difficulty
Memory Reallocation Solution 2017-06 Bitwise Operations 🟢 Easy
Hex Ed Solution 2017-11 Math 🟢 Easy
Particle Swarm Solution 2017-20 Vectors, Math 🔴 Hard
Fractal Art Solution 2017-21 Vectors 🟡 Medium
Sporifica Virus Solution 2017-22 Vectors, Simulation 🟡 Medium
Electromagnetic Moat Solution 2017-24 Graphs 🟡 Medium

2016

Puzzle My Solution Date Topic(s) Difficulty
Internet Protocol Version 7 Solution 2016-07 Regular Expressions 🟡 Medium
Explosives in Cyberspace Solution 2016-09 String Parsing 🟡 Medium
Timing is Everything Solution 2016-15 Math 🟢 Easy
An Elephant Named Joseph Solution 2016-19 Math 🔴 Hard
Grid Computing Solution 2016-22 Graphs 🔴 Hard
Air Duct Spelunking Solution 2016-24 Graphs, Recursion 🟡 Medium

2015

Puzzle My Solution Date Topic(s) Difficulty
Doesn't He Have Intern-Elves For This? Solution 2015-05 Regular Expressions 🟡 Medium
Some Assembly Required Solution 2015-07 Graphs, Bitwise Operations 🔴 Hard
Matchsticks Solution 2015-08 Regular Expressions 🟡 Medium
Knights of the Dinner Table Solution 2015-13 Graphs 🟢 Easy
Medicine for Rudolph Solution 2015-19 Regular Expressions 🔴 Hard
Infinite Elves and Infinite Houses Solution 2015-20 Math 🟡 Medium

Running a Solution

  1. From your terminal, using the .NET CLI
cd Aoc
dotnet run solve <year> <day> --input <path to input>
  1. From a .cs file, using reflective SolutionRunner:
using Automation.Runner;

SolutionRunner.Run(year: <year>, day: <day>, inputPath: <path to input>);
  1. From a .cs file, directly instantiating a given Solution:
using Solutions.Y<year>.D<day>;

var solution = new Solution { InputPath = <path to input> };
var p1 = solution.Run(part: 1);
var p2 = solution.Run(part: 2);