Add Day 06 solution, needs cleanup later

This commit is contained in:
Sebastian Lindemeier
2025-12-06 10:54:11 +01:00
parent fd417a6e97
commit 47f468ff68
4 changed files with 143 additions and 8 deletions
+14 -8
View File
@@ -99,15 +99,14 @@ public class Day05 : IPuzzleSolver<long>
var optimizedRanges = new List<Range>(ranges.Length) { ranges[0] };
foreach (var range in ranges)
{
var lastRange = optimizedRanges[^1];
if (range.from > lastRange.to)
{
optimizedRanges.Add(range);
}
else if (TryCombineRanges(lastRange, range, out var combined))
if (TryCombineRanges(optimizedRanges[^1], range, out var combined))
{
optimizedRanges[^1] = combined;
}
else
{
optimizedRanges.Add(range);
}
}
return optimizedRanges;
@@ -115,11 +114,18 @@ public class Day05 : IPuzzleSolver<long>
private bool TryCombineRanges(Range first, Range second, out Range combined)
{
if (IsIdInRange(second.from, first) && !IsIdInRange(second.to, first))
if (IsIdInRange(second.from, first))
{
combined = (first.from, second.to);
var isEndInRange = IsIdInRange(second.to, first);
combined = isEndInRange ? first : (first.from, second.to);
return true;
}
// if (IsIdInRange(first.from, second))
// {
// var isEndInRange = IsIdInRange(first.to, second);
// combined = isEndInRange ? second : (second.from, first.to);
// return true;
// }
combined = first;
return false;