From 1233f197120347bf833896af79c3c1665780cce4 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 11 Dec 2023 00:00:30 -0800 Subject: [PATCH] 2023 dec 11th --- Python/2023/11/main.py | 46 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Python/2023/11/main.py diff --git a/Python/2023/11/main.py b/Python/2023/11/main.py new file mode 100644 index 0000000..ad4302a --- /dev/null +++ b/Python/2023/11/main.py @@ -0,0 +1,46 @@ +import math + +input = open("input", 'r') + +data = [] + +for i, line in enumerate(input): + line = list(line.rstrip()) + data.append(line) + + +# expansion_factor = 1 +expansion_factor = 1_000_000 - 1 +cols = dict() +rows = dict() +offset = 0 + +for row in range(len(data)): + if all(data[row][col] == '.' for col in range(len(data[row]))): + offset += expansion_factor + else: + rows[row] = row + offset +offset = 0 +for col in range(len(data[0])): + if all(data[row][col] == '.' for row in range(len(data))): + offset += expansion_factor + else: + cols[col] = col + offset + +galaxies = [] + +for i, line in enumerate(data): + for j, point in enumerate(line): + if point == "#": + galaxies.append((rows[i],cols[j])) + +def shortestPath(g1, g2): + return abs(g1[0] - g2[0]) + abs(g1[1] - g2[1]) + +paths = [] + +for i, galaxy1 in enumerate(galaxies): + for galaxy2 in galaxies[i+1:]: + paths.append(shortestPath(galaxy1, galaxy2)) + +print(sum(paths))