From fd417a6e9792e97df961d6b4172c75a816e7ac75 Mon Sep 17 00:00:00 2001 From: Sebastian Lindemeier Date: Fri, 5 Dec 2025 10:59:44 +0100 Subject: [PATCH] Refactor range combining logic for future reusability --- AoC_2025/Day05.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/AoC_2025/Day05.cs b/AoC_2025/Day05.cs index 2f53e49..45c746e 100644 --- a/AoC_2025/Day05.cs +++ b/AoC_2025/Day05.cs @@ -104,14 +104,26 @@ public class Day05 : IPuzzleSolver { optimizedRanges.Add(range); } - else if (IsIdInRange(range.from, lastRange) && ! IsIdInRange(range.to, lastRange)) + else if (TryCombineRanges(lastRange, range, out var combined)) { - optimizedRanges[^1] = (lastRange.from, range.to); + optimizedRanges[^1] = combined; } } return optimizedRanges; } + + private bool TryCombineRanges(Range first, Range second, out Range combined) + { + if (IsIdInRange(second.from, first) && !IsIdInRange(second.to, first)) + { + combined = (first.from, second.to); + return true; + } + + combined = first; + return false; + } private static IEnumerable CountIdsInRanges(IEnumerable combinedRanges) {