about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBen Harris <ben@tilde.team>2021-12-03 12:08:15 -0500
committerBen Harris <ben@tilde.team>2021-12-03 12:08:15 -0500
commit72e81981a349096c6925cf8b162f513ec9d32da0 (patch)
tree77486939bb8260b890d8baba44fcd0fd7d4983a7
parent7baf9b8bb54d123df0313139b4dd630fc9bd75bf (diff)
refactor mostcommon at index
-rw-r--r--aoc2021/Day03.cs9
1 files changed, 5 insertions, 4 deletions
diff --git a/aoc2021/Day03.cs b/aoc2021/Day03.cs
index e1003c4..85e1c81 100644
--- a/aoc2021/Day03.cs
+++ b/aoc2021/Day03.cs
@@ -35,12 +35,14 @@ public sealed class Day03 : Day
     {
         var o = _report;
         var c = _report;
+
+        char MostCommon(int i, IReadOnlyCollection<string> report) =>
+            report.Count(r => r[i] == '1') >= report.Count / 2.0 ? '1' : '0';
         
         var i = 0;
         while (o.Count > 1)
         {
-            var most = o.Count(r => r[i] == '1') >= o.Count / 2.0 ? '1' : '0';
-            o = o.Where(r => r[i] == most).ToList();
+            o = o.Where(r => r[i] == MostCommon(i, o)).ToList();
             i++;
         }
         var o2 = Convert.ToInt64(o.Single(), 2);
@@ -48,8 +50,7 @@ public sealed class Day03 : Day
         i = 0;
         while (c.Count > 1)
         {
-            var most = c.Count(r => r[i] == '1') >= c.Count / 2.0 ? '0' : '1';
-            c = c.Where(r => r[i] == most).ToList();
+            c = c.Where(r => r[i] != MostCommon(i, c)).ToList();
             i++;
         }
         var co2 = Convert.ToInt64(c.Single(), 2);