From fbb492e3ae56d40c240b858aa80bfa3b69183bed Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 9 Dec 2024 21:35:04 -0800 Subject: [PATCH] 2024 Dec 10th --- Python/2024/10/main.py | 43 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Python/2024/10/main.py diff --git a/Python/2024/10/main.py b/Python/2024/10/main.py new file mode 100644 index 0000000..50e1cae --- /dev/null +++ b/Python/2024/10/main.py @@ -0,0 +1,43 @@ +input = open("input", 'r') + +# d = [line for line in input] +# d = [[val for val in line.strip()] for line in input] +d = {(complex(x,y)): int(c) for y,line in enumerate(input) for x,c in enumerate(line.strip())} + +z = [p for p,c in d.items() if c == 0] + +# print(d, z) + +def run(p2=False): + scores = [] + ratings = [] + for zero in z: + score = 0 + q = [] + s = set() + nines = set() + nines2 = 0 + + q.append(zero) + + while q: + point = q.pop() + if d[point] == 9: + nines.add(point) + nines2 += 1 + continue + if not p2 and point in s: + continue + s.add(point) + + for dt in {1, -1, 1j, -1j}: + np = point + dt + if not np in d: continue + if d[np] == (d[point] + 1): + q.append(np) + scores.append(len(nines)) + ratings.append(nines2) + return scores if not p2 else ratings + +print(sum(run())) +print(sum(run(True)))