From 3888fd23a85d08855a8c06370d2f7ea7bdc596ac Mon Sep 17 00:00:00 2001 From: Buddhism8003 Date: Sun, 14 Dec 2025 14:57:31 +0100 Subject: [PATCH] Used IntegerRange from HelperClasses in solutions for day 02 --- AoC_2025/Day02.cs | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/AoC_2025/Day02.cs b/AoC_2025/Day02.cs index 8bbea8a..b69c268 100644 --- a/AoC_2025/Day02.cs +++ b/AoC_2025/Day02.cs @@ -1,5 +1,6 @@ using System.Text.RegularExpressions; using AdvenOfCode.Contracts; +using AdventOfCode.HelperClasses; namespace AoC_2025; @@ -47,8 +48,8 @@ public partial class Day02 : IPuzzleSolver private IEnumerable FindInvalidIds(string range) { - var (start, end) = Parse(range); - var halvableIds = FindHalvableIds(start, end); + var ids = Parse(range); + var halvableIds = FindHalvableIds(ids); var invalidIds = GetInvalidIds(halvableIds); return invalidIds; } @@ -65,31 +66,30 @@ public partial class Day02 : IPuzzleSolver private IEnumerable FindAllInvalidIds(string range, Regex regex) { - var (start, end) = Parse(range); - var invalidIds = Range(start, end) + var ids = Parse(range); + var invalidIds = ids .Where(id => regex.IsMatch(id.ToString())); return invalidIds; } private IEnumerable FindInvalidSegmentedIds(string range) { - var (start, end) = Parse(range); - var idsAsAllSegments = GetIdAsAllSegments(start, end); + var ids = Parse(range); + var idsAsAllSegments = GetIdAsAllSegments(ids); var invalidIdSegments = FindIdsWhereAllSegmentsAreEqual(idsAsAllSegments); var invalidIds = MergeSegments(invalidIdSegments); var invalidIdNumbers = invalidIds.Select(id => long.Parse(id)); return invalidIdNumbers; } - private (long start, long end) Parse(string range) + private IntegerRange Parse(string range) { var parts = range.Split('-', StringSplitOptions.RemoveEmptyEntries); - return (long.Parse(parts[0]), long.Parse(parts[1])); + return new IntegerRange(long.Parse(parts[0]), long.Parse(parts[1])); } - private IEnumerable FindHalvableIds(long start, long end) + private IEnumerable FindHalvableIds(IntegerRange ids) { - var ids = Range(start, end); var idStrings = ids.Select(id => id.ToString()); var halvableIds = idStrings.Where(id => (id.Length % 2) == 0); return halvableIds; @@ -102,18 +102,9 @@ public partial class Day02 : IPuzzleSolver var invalidNumberedIds = invalidIds.Select(id => long.Parse(id.Item1 + id.Item2)); return invalidNumberedIds; } - - private IEnumerable Range(long start, long end) - { - for (var i = start; i <= end; i++) - { - yield return i; - } - } - private IEnumerable>> GetIdAsAllSegments(long start, long end) + private IEnumerable>> GetIdAsAllSegments(IntegerRange ids) { - var ids = Range(start, end); var idStrings = ids.Select(id => id.ToString()); var idSegments = idStrings.Select(id => GetSegments(id)); return idSegments;