This commit is contained in:
Sebastian Seedorf
2021-12-06 10:44:06 +01:00
parent 53abaa4d01
commit 074e2b683f
3 changed files with 659 additions and 0 deletions

32
day04/part2.py Normal file
View File

@@ -0,0 +1,32 @@
#!/usr/bin/env python3
from collections import defaultdict
lines = [x.strip() for x in open("input.txt")]
inp = map(int, lines[0].split(","))
boards = defaultdict(list)
remaining = defaultdict(set)
for i in range((len(lines)-1) // 6):
sub = list(map(lambda x: list(map(int, x.split())), lines[i*6+2:i*6+7]))
for j in range(5):
boards[i].append(set(sub[j]))
boards[i].append(set([row[j] for row in sub]))
board_items = set()
for row in sub:
board_items.update(row)
remaining[i] = board_items
wins = set()
for draw in inp:
for key, board in boards.items():
if key in wins:
continue
remaining[key].discard(draw)
for line in board:
line.discard(draw)
if len(line) == 0:
wins.add(key)
if len(wins) == 100:
print(draw * sum(remaining[key]))
exit(0)
break