2025-11-20 09:33:14 -06:00
2023-12-08 21:46:28 -06:00
2023-12-03 23:03:46 -06:00
2023-12-04 10:44:37 -06:00
2023-12-06 14:42:07 -06:00
2023-12-06 20:30:37 -06:00
2023-12-07 19:35:40 -06:00
2023-12-09 21:19:05 -06:00
2023-12-11 02:03:46 -06:00
2023-12-11 02:03:46 -06:00
2023-12-11 02:19:07 -06:00
2023-12-20 00:22:59 -06:00
2023-12-20 00:22:59 -06:00
2023-12-20 00:22:59 -06:00
2023-12-21 12:27:34 -06:00
2025-11-20 09:04:39 -06:00
2023-12-01 21:39:12 -06:00
2025-11-20 09:33:14 -06:00
2025-11-20 09:33:14 -06:00

Advent of Code 2023

This repository contains my solutions for the Advent of Code 2023 challenge.

Language

I am using C# for this year's challenge. I'd consider myself proficient in C#, but on a day to day basis I don't use it as much and would just like to get more practice with it.

Structure

Each day's solution is contained in a separate folder. Each folder contains:

  • A dotnet console application containing the solution.
  • An xUnit test project containing unit tests for the solution.

Prerequisites

Running the Solutions

To run the solutions, navigate to the solution folder and run the following command:

dotnet run -- <path-to-input-file>

Or for part 2 solutions

dotnet run -- <path-to-input-file> part2

You can also build the projects and run the executables directly.

dotnet build
./bin/Debug/net8.0/<project-name> <path-to-input-file>

Challenges

Day Problem Solution Status Notes
01 Problem Solution The trickiest part here was accounting for overlapping digit words.
02 Problem Solution The key to me here was to parse the input into a useful model.
03 Problem Solution The edge case that got me here was lines ending with a part number.
04 Problem Solution Part 2 gets out of hand quickly with just 200 cards.
05 Problem Solution I brute forced part 2 using parallelism. I know shame.
06 Problem Solution Thank goodness part 2 was not like 5's part 2. 😅
07 Problem Solution What took me longest here was I missed a case when jokers are wild and there are three groups of cards.
08 Problem Solution Got to implement a least common multiple algorithm for part 2.
09 Problem Solution Part 1 took me unnecessarily long. The bug was summing a line to check for all zeros is bad idea when negative numbers are involved.
10 Problem Solution So...my solutions are rather slow, but they work. Part 2 appears to have a mathematical solution, but scanning is what I came up with on my own.
11 Problem Solution Expanding the universe was fine in part 1, but part 2 showed I actually needed to calculate the expansion instead of expanding the input.
12 Problem Solution This one stretched my skills. I needed lots of help from the interwebz.
13 Problem Solution This solution is the one I think I'm most proud of so far.
14 Problem Solution Cycles and a cache...that's all I'm going to say.
15 Problem Solution
16 Problem Solution
17 Problem Solution
18 Problem Solution
19 Problem Solution
20 Problem Solution
21 Problem Solution
22 Problem Solution
23 Problem Solution
24 Problem Solution
25 Problem Solution
S
Description
No description provided
Readme
336 KiB
Languages
C# 100%