Something is wrong with global snow production, and you've been selected to take a look. The Elves have even given you a map; on it, they've used stars to mark the top fifty locations that are likely to be having problems.
You've been doing this long enough to know that to restore snow operations, you need to check all fifty stars by December 25th.
Visit the website for the full story and full puzzle description.
namespace AdventOfCode.Y2023.Day01;
using System.Linq;
using System.Text.RegularExpressions;
[ProblemName("Trebuchet?!")]
class Solution : Solver {
public object PartOne(string input) =>
Solve(input, @"\d");
public object PartTwo(string input) =>
Solve(input, @"\d|one|two|three|four|five|six|seven|eight|nine");
int Solve(string input, string rx) => (
from line in input.Split("\n")
let first = Regex.Match(line, rx)
let last = Regex.Match(line, rx, RegexOptions.RightToLeft)
select ParseMatch(first.Value) * 10 + ParseMatch(last.Value)
).Sum();
int ParseMatch(string st) => st switch {
"one" => 1,
"two" => 2,
"three" => 3,
"four" => 4,
"five" => 5,
"six" => 6,
"seven" => 7,
"eight" => 8,
"nine" => 9,
var d => int.Parse(d)
};
}
Please ☆ my repo if you like it!