diff --git a/AdventOfCode.HelperClasses/AdventOfCode.HelperClasses.csproj b/AdventOfCode.HelperClasses/AdventOfCode.HelperClasses.csproj
new file mode 100644
index 0000000..17b910f
--- /dev/null
+++ b/AdventOfCode.HelperClasses/AdventOfCode.HelperClasses.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net9.0
+ enable
+ enable
+
+
+
diff --git a/AdventOfCode.HelperClasses/IntArrayEqualityComparer.cs b/AdventOfCode.HelperClasses/IntArrayEqualityComparer.cs
new file mode 100644
index 0000000..1d37f9b
--- /dev/null
+++ b/AdventOfCode.HelperClasses/IntArrayEqualityComparer.cs
@@ -0,0 +1,24 @@
+namespace AdventOfCode.HelperClasses;
+
+public class IntArrayEqualityComparer : IEqualityComparer
+{
+ public bool Equals(int[]? x, int[]? y)
+ {
+ if (x is null || y is null || x.Length != y.Length) return false;
+
+ return !x.Where((t, i) => t != y[i]).Any();
+ }
+
+ public int GetHashCode(int[] obj)
+ {
+ var result = 17;
+ foreach (var t in obj)
+ {
+ unchecked
+ {
+ result = result * 23 + t;
+ }
+ }
+ return result;
+ }
+}
\ No newline at end of file
diff --git a/AdventOfCode.sln b/AdventOfCode.sln
index 9926868..7ca1055 100644
--- a/AdventOfCode.sln
+++ b/AdventOfCode.sln
@@ -12,6 +12,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdvenOfCode.Contracts", "Ad
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode.Extensions", "AdventOfCode.Extensions\AdventOfCode.Extensions.csproj", "{1466A0F6-7C88-47FF-B8F8-FF30368E26DC}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode.HelperClasses", "AdventOfCode.HelperClasses\AdventOfCode.HelperClasses.csproj", "{D47175BB-5AD6-43A8-9287-FF5E6F1816E3}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -38,6 +40,10 @@ Global
{1466A0F6-7C88-47FF-B8F8-FF30368E26DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1466A0F6-7C88-47FF-B8F8-FF30368E26DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1466A0F6-7C88-47FF-B8F8-FF30368E26DC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D47175BB-5AD6-43A8-9287-FF5E6F1816E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D47175BB-5AD6-43A8-9287-FF5E6F1816E3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D47175BB-5AD6-43A8-9287-FF5E6F1816E3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D47175BB-5AD6-43A8-9287-FF5E6F1816E3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{4F395AE3-DABB-4546-A4D0-5A62425FE168} = {05EBAA1C-B33B-4AFE-8635-A58D7CA509A7}
diff --git a/AoC_2025/AoC_2025.csproj b/AoC_2025/AoC_2025.csproj
index badaa42..a43acc8 100644
--- a/AoC_2025/AoC_2025.csproj
+++ b/AoC_2025/AoC_2025.csproj
@@ -9,6 +9,7 @@
+
diff --git a/AoC_2025/Day10.cs b/AoC_2025/Day10.cs
index 9ab5f82..707b77d 100644
--- a/AoC_2025/Day10.cs
+++ b/AoC_2025/Day10.cs
@@ -7,13 +7,14 @@ using System.IO;
using System.Linq;
using AdvenOfCode.Contracts;
using AdventOfCode.Extensions;
+using AdventOfCode.HelperClasses;
using Microsoft.Z3;
namespace AoC_2025;
public class Day10 : IPuzzleSolver
{
- private (uint lamps, uint[] buttons, int[] joltages)[] ParsePuzzleInput(string path)
+ private (uint lamps, uint[] buttons)[] ParsePuzzleInput(string path)
{
var puzzleInput = File.ReadAllLines(path)
.Where(line => !string.IsNullOrWhiteSpace(line))
@@ -41,16 +42,8 @@ public class Day10 : IPuzzleSolver
.Select(lampIndexes => lampIndexes.Aggregate((uint)0L, (acc, lampIndex) => acc | ((uint)1 << lampIndex)))
.ToArray())
.ToArray();
- var joltages = puzzleInput
- .Select(input => input.joltages)
- .Select(joltage => joltage
- .Split(',', StringSplitOptions.RemoveEmptyEntries)
- .Select(jolt => int.Parse(jolt))
- .ToArray())
- .ToArray();
var res = lamps
.Zip(buttons, (lamp, button) => (lamp, button))
- .Zip(joltages, (bl, joltage) => (bl.lamp, bl.button, joltage))
.ToArray();
return res;
}
@@ -272,27 +265,4 @@ public class Day10 : IPuzzleSolver
var answer = answerExpression is IntNum number ? number.Int64 : 0;
return answer;
}
-}
-
-public class IntArrayEqualityComparer : IEqualityComparer
-{
- public bool Equals(int[]? x, int[]? y)
- {
- if (x is null || y is null || x.Length != y.Length) return false;
-
- return !x.Where((t, i) => t != y[i]).Any();
- }
-
- public int GetHashCode(int[] obj)
- {
- var result = 17;
- foreach (var t in obj)
- {
- unchecked
- {
- result = result * 23 + t;
- }
- }
- return result;
- }
}
\ No newline at end of file