advent-of-code/2021/Python/day04.py
2021-12-04 11:02:56 +01:00

28 lines
759 B
Python

import numpy as np
def loader_np() -> np.ndarray:
with open('../.input/day04', 'r') as f:
data = f.read().splitlines()
vector = np.array([int(x) for x in data[0].split(",")])
tensor = np.array([
np.array(list(map(np.int32, map(str.split, board))))
for board
in [data[i:i+5] for i in range(2, len(data), 6)]
])
return vector, tensor
def solve1() -> int:
vector, tensor = loader_np()
for scale in range(1, len(vector)+1):
for matrix in tensor:
mask = np.isin(matrix, vector[:scale])
if mask.all(axis=0).any() or mask.all(axis=1).any():
return (matrix * ~mask).sum() * vector[:scale][-1]
if __name__ == '__main__':
print(solve1())