This commit is contained in:
Sebastian Seedorf
2021-12-09 12:07:09 +01:00
parent e2699eade6
commit ff22d259e8
3 changed files with 135 additions and 0 deletions

17
day09/part2.py Normal file
View File

@@ -0,0 +1,17 @@
#!/usr/bin/env python3
import operator
from functools import reduce
import numpy as np
from skimage.segmentation import flood_fill
arr = np.array([[int(n) for n in line.strip()] for line in open("input.txt")])
borders = np.zeros_like(arr)
borders[arr == 9] = 1
curr_sum = np.sum(borders)
areas = []
while np.shape(nxt := np.array(np.where(borders == 0))) != (2, 0):
borders = flood_fill(borders, tuple(nxt[:, 0]), 1, tolerance=0, connectivity=1)
areas.append(-curr_sum + (curr_sum := np.sum(borders)))
print(reduce(operator.mul, sorted(areas)[-3:]))