Refactor Day08 to reorder methods and simplify circuit connection logic

This commit is contained in:
Sebastian Lindemeier 2025-12-08 11:35:09 +01:00
parent a3ac176602
commit 9d8a611f76
1 changed files with 8 additions and 11 deletions

View File

@ -33,11 +33,6 @@ public class Day08
.Aggregate((acc, next) => acc * next);
}
private List<List<Coordinate>> CreateCircuits(Coordinate[] jBoxes)
{
return jBoxes.Select(p => new List<Coordinate> { p }).ToList();
}
public long SolvePart2(string pathToPuzzleInput)
{
var jBoxes = ParsePuzzleInput(pathToPuzzleInput);
@ -47,15 +42,17 @@ public class Day08
return lastConnected.a.x * lastConnected.b.x;
}
private List<List<Coordinate>> CreateCircuits(Coordinate[] jBoxes)
{
return jBoxes.Select(p => new List<Coordinate> { p }).ToList();
}
private List<List<Coordinate>> CombineCircuits(List<List<Coordinate>> circuits,
(Coordinate boxA, Coordinate boxB)[] jBoxPairs, int amountToConnect)
{
for (var i = 0; i < amountToConnect; i++)
{
var nextToConnect = jBoxPairs[i];
circuits = ConnectJBoxes(nextToConnect.boxA, nextToConnect.boxB, circuits);
}
circuits = jBoxPairs
.Take(amountToConnect)
.Aggregate(circuits, (acc, next) => ConnectJBoxes(next.boxA, next.boxB, acc));
return circuits;
}