42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
import copy
|
|
|
|
from Board import BingoBoard
|
|
|
|
if __name__ == '__main__':
|
|
boards = []
|
|
with open("input.txt", "r") as f:
|
|
toPop = []
|
|
inp = f.readlines()
|
|
nums = [int(x) for x in inp[0].split(",")]
|
|
inp.pop(0)
|
|
for i in range(len(inp)):
|
|
inp[i] = inp[i].strip()
|
|
if inp[i] == "":
|
|
toPop.append(i)
|
|
|
|
toPop.reverse()
|
|
for i in toPop:
|
|
inp.pop(i)
|
|
|
|
for board in range(len(inp) // 5):
|
|
boards.append(BingoBoard(inp[board * 5:board * 5 + 5]))
|
|
|
|
# part1
|
|
# for num in nums:
|
|
# for board in boards:
|
|
# board.enterValue(num)
|
|
# if board.checkWin():
|
|
# print(board.sum() * num)
|
|
# exit()
|
|
|
|
# part2
|
|
won = 0
|
|
for num in nums:
|
|
for board in boards:
|
|
if not board.solved:
|
|
board.enterValue(num)
|
|
if board.checkWin():
|
|
won += 1
|
|
if won == len(boards):
|
|
print(board.sum()*num)
|
|
exit()
|