From e3c33a5247332f083af8a84a0c3e6fc6650e8845 Mon Sep 17 00:00:00 2001 From: Tomasz Kramkowski Date: Sat, 4 Dec 2021 06:50:52 +0000 Subject: day 4: type annotations --- 4.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/4.py b/4.py index 3cafb8b..b740d7b 100644 --- a/4.py +++ b/4.py @@ -6,7 +6,9 @@ class Cell: num: int marked: bool = False -def bingo(board): +Board = list[list[Cell]] + +def bingo(board: Board) -> bool: for row in board: if all(cell.marked for cell in row): return True @@ -15,10 +17,13 @@ def bingo(board): return True return False -def solve(nums, boards): - won = set() - wins = [] +def solve(nums: list[int], boards: list[Board]) -> tuple[int, int]: + won: set[int] = set() + wins: list[int] = [] + num: int for num in nums: + i: int + board: Board for i, board in enumerate(boards): total = 0 for row in board: @@ -32,6 +37,8 @@ def solve(nums, boards): wins.append(num * total) return wins[0], wins[-1] +nums: str | list[int] +boards: list[str] | list[Board] nums, *boards = open_day(4).read().rstrip().split('\n\n') nums = list(map(int, nums.split(','))) boards = [[[Cell(int(n)) for n in l.split()] for l in b.split('\n')] for b in boards] -- cgit v1.2.3-54-g00ecf