diff options
author | Ben Harris <ben@tilde.team> | 2021-12-03 12:08:15 -0500 |
---|---|---|
committer | Ben Harris <ben@tilde.team> | 2021-12-03 12:08:15 -0500 |
commit | 72e81981a349096c6925cf8b162f513ec9d32da0 (patch) | |
tree | 77486939bb8260b890d8baba44fcd0fd7d4983a7 | |
parent | 7baf9b8bb54d123df0313139b4dd630fc9bd75bf (diff) |
refactor mostcommon at index
-rw-r--r-- | aoc2021/Day03.cs | 9 |
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); |