From 7cb4372a3d10c9d3f030f7f718a50f97875b06eb Mon Sep 17 00:00:00 2001 From: encse Date: Sat, 7 Dec 2024 09:40:41 +0100 Subject: [PATCH] 2024/07 --- 2024/Day07/README.md | 8 ++++++ 2024/Day07/Solution.cs | 36 ++++++++++++++++++++++++ 2024/Day07/input.in | Bin 0 -> 24972 bytes 2024/Day07/input.refout | 2 ++ 2024/SplashScreen.cs | 60 +++++++++++++++++++++++++--------------- 2024/calendar.svg | 14 +++++----- 6 files changed, 91 insertions(+), 29 deletions(-) create mode 100644 2024/Day07/README.md create mode 100644 2024/Day07/Solution.cs create mode 100644 2024/Day07/input.in create mode 100644 2024/Day07/input.refout diff --git a/2024/Day07/README.md b/2024/Day07/README.md new file mode 100644 index 00000000..17748365 --- /dev/null +++ b/2024/Day07/README.md @@ -0,0 +1,8 @@ +## --- Day 7: Bridge Repair --- +The Historians take you to a familiar [rope bridge](/2022/day/9) over a river in the middle of a jungle. The Chief isn't on this side of the bridge, though; maybe he's on the other side? + +When you go to cross the bridge, you notice a group of engineers trying to repair it. (Apparently, it breaks pretty frequently.) You won't be able to cross until it's fixed. + +You ask how long it'll take; the engineers tell you that it only needs final calibrations, but some young elephants were playing nearby and stole all the operators from their calibration equations! They could finish the calibrations if only someone could determine which test values could possibly be produced by placing any combination of operators into their calibration equations (your puzzle input). + +Read the [full puzzle](https://adventofcode.com/2024/day/7). diff --git a/2024/Day07/Solution.cs b/2024/Day07/Solution.cs new file mode 100644 index 00000000..e1ac5026 --- /dev/null +++ b/2024/Day07/Solution.cs @@ -0,0 +1,36 @@ +namespace AdventOfCode.Y2024.Day07; + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text.RegularExpressions; + +[ProblemName("Bridge Repair")] +class Solution : Solver { + + public object PartOne(string input) => Filter(input, Check1).Sum(); + public object PartTwo(string input) => Filter(input, Check2).Sum(); + + private IEnumerable Filter(string input, Func, bool> check) => + from line in input.Split("\n") + let parts = Regex.Matches(line, @"\d+").Select(m=>long.Parse(m.Value)) + let target = parts.First() + let nums = parts.Skip(1).ToList() + where check(target, 0, nums) + select target; + + private bool Check1(long target, long acc, List nums) => + nums switch { + [] => target == acc, + _ => Check1(target, acc * nums[0], nums[1..]) || + Check1(target, acc + nums[0], nums[1..]) + }; + + private bool Check2(long target, long acc, List nums) => + nums switch { + [] => target == acc, + _ => Check2(target, acc * nums[0], nums[1..]) || + Check2(target, acc + nums[0], nums[1..]) || + Check2(target, long.Parse($"{acc}{nums[0]}"), nums[1..]) + }; +} \ No newline at end of file diff --git a/2024/Day07/input.in b/2024/Day07/input.in new file mode 100644 index 0000000000000000000000000000000000000000..723bf50a42b53ee62e5cfa4754f18f97903b1ed9 GIT binary patch literal 24972 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 +