diff options
Diffstat (limited to 'day11.py')
-rw-r--r-- | day11.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/day11.py b/day11.py new file mode 100644 index 0000000..e939ed0 --- /dev/null +++ b/day11.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python + +import numpy as np +from scipy.ndimage import convolve + +with open("day11.txt") as data: + octopi = np.array([list(map(int, line.strip())) for line in data]) + +neighbors = np.ones((3,3), dtype=int) +step = 0 +flashes = 0 +while True: + octopi += 1 + flashed = np.zeros_like(octopi, dtype=bool) + while (flashing := ((octopi > 9) & ~flashed)).any(): + octopi += convolve(flashing.astype(int), neighbors, mode='constant') + flashed |= flashing + + octopi[flashed] = 0 + flashes += flashed.sum() + step += 1 + if step == 100: + print(flashes) + + if np.all(octopi == 0): + print(step) + break |