diff options
Diffstat (limited to 'aoc2021/Day03.cs')
-rw-r--r-- | aoc2021/Day03.cs | 23 |
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}"; } } |