Day03_MullItOver.cs
@benharri.org · 29d ago · c# · 38 loc · raw · 0 comments
1namespace Solutions._2024;23/// <summary>4/// Day 3: <a href="https://adventofcode.com/2024/day/3"/>5/// </summary>6public partial class Day03MullItOver() : Day(2024, 3, "Mull It Over")7{8 private string _input = "";910 [GeneratedRegex(@"mul\((\d{1,3}),(\d{1,3})\)")]11 private static partial Regex MulRegex();1213 [GeneratedRegex(@"don't\(\)|do\(\)|mul\((\d{1,3}),(\d{1,3})\)")]14 private static partial Regex DoDontRegex();1516 public override void ProcessInput() => _input = Input.Join();1718 public override object Part1() =>19 MulRegex().Matches(_input)20 .Sum(m => int.Parse(m.Groups[1].ValueSpan) * int.Parse(m.Groups[2].ValueSpan));2122 public override object Part2()23 {24 var sum = 0;25 var enabled = true;2627 foreach (Match m in DoDontRegex().Matches(_input))28 {29 if (m.ValueSpan is "do()") enabled = true;30 if (m.ValueSpan is "don't()") enabled = false;31 if (enabled && m.ValueSpan.StartsWith("mul("))32 sum += int.Parse(m.Groups[1].ValueSpan) * int.Parse(m.Groups[2].ValueSpan);33 }3435 return sum;36 }37}38
login to post a comment