From 9daa1e1424be8b86192174bc8e622cb2fd3387fb Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Sat, 18 Dec 2021 10:59:07 -0500 Subject: [PATCH] d18p2 --- aoc2021.test/DayTests.cs | 4 ++-- aoc2021/Day18.cs | 14 +++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/aoc2021.test/DayTests.cs b/aoc2021.test/DayTests.cs index 2d08c5b..295cb9a 100644 --- a/aoc2021.test/DayTests.cs +++ b/aoc2021.test/DayTests.cs @@ -38,7 +38,7 @@ public class DayTests [DataRow(typeof(Day15), "702", "2955")] [DataRow(typeof(Day16), "852", "19348959966392")] [DataRow(typeof(Day17), "12090", "5059")] - [DataRow(typeof(Day18), "4289", "")] + [DataRow(typeof(Day18), "4289", "4807")] public void CheckAllDays(Type dayType, string part1, string part2) { var s = Stopwatch.StartNew(); @@ -86,7 +86,7 @@ public class DayTests [DataRow(typeof(Day15), "40", "315")] [DataRow(typeof(Day16), "16", "15")] [DataRow(typeof(Day17), "45", "112")] - [DataRow(typeof(Day18), "4140", "")] + [DataRow(typeof(Day18), "4140", "3993")] public void CheckTestInputs(Type dayType, string part1, string part2) { Day.UseTestInput = true; diff --git a/aoc2021/Day18.cs b/aoc2021/Day18.cs index 06fce6b..eb13164 100644 --- a/aoc2021/Day18.cs +++ b/aoc2021/Day18.cs @@ -112,5 +112,17 @@ public sealed class Day18 : Day return Magnitude(result.Root); } - public override object Part2() => ""; + public override object Part2() + { + var best = 0L; + for (var i = 0; i < _fishes.Count; i++) + best = _fishes + .Where((_, j) => i != j) + .Select(t => Add(Parse(_fishes[i]), Parse(t))) + .Select(result => Magnitude(result.Root)) + .Prepend(best) + .Max(); + + return best; + } }