From 801b96de1d448c23d27bb59651159e3fd04edcdd Mon Sep 17 00:00:00 2001 From: Sebastian Lindemeier Date: Fri, 12 Dec 2025 11:49:23 +0100 Subject: [PATCH] Refactor Day10 to rename variables and improve readability in `GetMinCountInternal` --- AoC_2025/Day10.cs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/AoC_2025/Day10.cs b/AoC_2025/Day10.cs index b3909eb..a00a3af 100644 --- a/AoC_2025/Day10.cs +++ b/AoC_2025/Day10.cs @@ -181,18 +181,21 @@ public class Day10 : IPuzzleSolver var res = GetMinCountInternal(joltages, patternCosts, new Dictionary(new IntArrayEqualityComparer())); return res; - static long GetMinCountInternal(int[] joltages, (int[] joltages, int cots)[] patternCosts, Dictionary memory) + static long GetMinCountInternal(int[] targetJoltages, (int[] joltages, int cots)[] patternCosts, Dictionary memory) { - if (joltages.All(j => j == 0)) return 0; - if (memory.TryGetValue(joltages, out var knownResult)) return knownResult; + if (targetJoltages.All(j => j == 0)) return 0; + if (memory.TryGetValue(targetJoltages, out var knownResult)) return knownResult; var minCount = 1_000_000_000L; - var joltageLevels = patternCosts - .Where(pc => pc.joltages.Zip(joltages, (pJolt, jJolt) => (pJolt % 2) == (jJolt % 2)).All(isEqual => isEqual)) + var patternsToCheck = patternCosts + .Where(pc => + pc.joltages + .Zip(targetJoltages, (pJolt, tJolt) => (pJolt % 2) == (tJolt % 2)) + .All(isEqual => isEqual)) .ToArray(); - foreach (var (joltageLevel, buttonPresses) in joltageLevels) + foreach (var (joltageLevel, buttonPresses) in patternsToCheck) { - var nextPattern = joltages.Zip(joltageLevel, (jolts, level) => (jolts - level) / 2).ToArray(); + var nextPattern = targetJoltages.Zip(joltageLevel, (jolts, level) => (jolts - level) / 2).ToArray(); var resultNext = 2 * GetMinCountInternal(nextPattern, patternCosts, memory) + buttonPresses; if (resultNext < minCount) { @@ -200,7 +203,7 @@ public class Day10 : IPuzzleSolver } } - memory[joltages] = minCount; + memory[targetJoltages] = minCount; return minCount; } }