about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBen Harris <ben@tilde.team>2021-12-18 10:59:07 -0500
committerBen Harris <ben@tilde.team>2021-12-18 10:59:07 -0500
commit9daa1e1424be8b86192174bc8e622cb2fd3387fb (patch)
treee50d91ebf29904328299582820d043a18a805cb6
parent0455ee883d3074639f3c9fca196f0d133109d681 (diff)
d18p2
-rw-r--r--aoc2021.test/DayTests.cs4
-rw-r--r--aoc2021/Day18.cs14
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;
+    }
 }