diff options
author | Ben Harris <ben@tilde.team> | 2021-12-04 13:19:38 -0500 |
---|---|---|
committer | Ben Harris <ben@tilde.team> | 2021-12-04 13:19:38 -0500 |
commit | a05c67c333156a6b2759f464d2a63a0321ab14be (patch) | |
tree | 9d454ee88d8c1f44a42a8338bceb54ef1d6f7979 | |
parent | 7f26db4b5d4b95961501fc1f86734b4e597dc6bf (diff) |
organize function order
-rw-r--r-- | aoc2021/Day04.cs | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/aoc2021/Day04.cs b/aoc2021/Day04.cs index 6ce3588..fbf1e1c 100644 --- a/aoc2021/Day04.cs +++ b/aoc2021/Day04.cs @@ -43,26 +43,6 @@ public sealed class Day04 : Day return $"{called.Last() * _boards[b].Where(x => !called.Contains(x)).Sum()}"; } - private int FirstWin(int i) - { - var c = _call.Take(i).ToHashSet(); - for (var j = 0; j < _boards.Count; j++) - if (HasWin(c, _boards[j])) return j; - return -1; - } - - private static bool HasWin(IReadOnlySet<int> c, IReadOnlyList<int> b) => - c.Contains(b[0]) && c.Contains(b[1]) && c.Contains(b[2]) && c.Contains(b[3]) && c.Contains(b[4]) || - c.Contains(b[5]) && c.Contains(b[6]) && c.Contains(b[7]) && c.Contains(b[8]) && c.Contains(b[9]) || - c.Contains(b[10]) && c.Contains(b[11]) && c.Contains(b[12]) && c.Contains(b[13]) && c.Contains(b[14]) || - c.Contains(b[15]) && c.Contains(b[16]) && c.Contains(b[17]) && c.Contains(b[18]) && c.Contains(b[19]) || - c.Contains(b[20]) && c.Contains(b[21]) && c.Contains(b[22]) && c.Contains(b[23]) && c.Contains(b[24]) || - c.Contains(b[0]) && c.Contains(b[5]) && c.Contains(b[10]) && c.Contains(b[15]) && c.Contains(b[20]) || - c.Contains(b[1]) && c.Contains(b[6]) && c.Contains(b[11]) && c.Contains(b[16]) && c.Contains(b[21]) || - c.Contains(b[2]) && c.Contains(b[7]) && c.Contains(b[12]) && c.Contains(b[17]) && c.Contains(b[22]) || - c.Contains(b[3]) && c.Contains(b[8]) && c.Contains(b[13]) && c.Contains(b[18]) && c.Contains(b[23]) || - c.Contains(b[4]) && c.Contains(b[9]) && c.Contains(b[14]) && c.Contains(b[19]) && c.Contains(b[24]); - public override string Part2() { Dictionary<int, bool> wonBoards = new(); @@ -82,4 +62,24 @@ public sealed class Day04 : Day var b = wonBoards.Single(kvp => !kvp.Value).Key; return $"{called.Last() * _boards[b].Where(x => !called.Contains(x)).Sum()}"; } + + private int FirstWin(int i) + { + var c = _call.Take(i).ToHashSet(); + for (var j = 0; j < _boards.Count; j++) + if (HasWin(c, _boards[j])) return j; + return -1; + } + + private static bool HasWin(IReadOnlySet<int> c, IReadOnlyList<int> b) => + c.Contains(b[0]) && c.Contains(b[1]) && c.Contains(b[2]) && c.Contains(b[3]) && c.Contains(b[4]) || + c.Contains(b[5]) && c.Contains(b[6]) && c.Contains(b[7]) && c.Contains(b[8]) && c.Contains(b[9]) || + c.Contains(b[10]) && c.Contains(b[11]) && c.Contains(b[12]) && c.Contains(b[13]) && c.Contains(b[14]) || + c.Contains(b[15]) && c.Contains(b[16]) && c.Contains(b[17]) && c.Contains(b[18]) && c.Contains(b[19]) || + c.Contains(b[20]) && c.Contains(b[21]) && c.Contains(b[22]) && c.Contains(b[23]) && c.Contains(b[24]) || + c.Contains(b[0]) && c.Contains(b[5]) && c.Contains(b[10]) && c.Contains(b[15]) && c.Contains(b[20]) || + c.Contains(b[1]) && c.Contains(b[6]) && c.Contains(b[11]) && c.Contains(b[16]) && c.Contains(b[21]) || + c.Contains(b[2]) && c.Contains(b[7]) && c.Contains(b[12]) && c.Contains(b[17]) && c.Contains(b[22]) || + c.Contains(b[3]) && c.Contains(b[8]) && c.Contains(b[13]) && c.Contains(b[18]) && c.Contains(b[23]) || + c.Contains(b[4]) && c.Contains(b[9]) && c.Contains(b[14]) && c.Contains(b[19]) && c.Contains(b[24]); } |