about summary refs log tree commit diff
path: root/aoc2021/Day03.cs
diff options
context:
space:
mode:
Diffstat (limited to 'aoc2021/Day03.cs')
-rw-r--r--aoc2021/Day03.cs23
1 files changed, 22 insertions, 1 deletions
diff --git a/aoc2021/Day03.cs b/aoc2021/Day03.cs
index a9e5c38..e1003c4 100644
--- a/aoc2021/Day03.cs
+++ b/aoc2021/Day03.cs
@@ -33,6 +33,27 @@ public sealed class Day03 : Day
 
     public override string Part2()
     {
-        return "";
+        var o = _report;
+        var c = _report;
+        
+        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();
+            i++;
+        }
+        var o2 = Convert.ToInt64(o.Single(), 2);
+
+        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();
+            i++;
+        }
+        var co2 = Convert.ToInt64(c.Single(), 2);
+
+        return $"{o2 * co2}";
     }
 }