Compare commits

...

2 Commits

Author SHA1 Message Date
Arthur 32e3dbdf4f d11 part two 2023-12-11 23:05:14 +01:00
Arthur f594fea3c2 d11 part one 2023-12-11 22:16:37 +01:00
2 changed files with 88 additions and 0 deletions

44
d11/run1.py Normal file
View File

@ -0,0 +1,44 @@
import sys
L = sys.stdin.read().splitlines()
gal = []
S=0
# Parser pour avoir les galaxies
for line, P in enumerate(L):
for col, p in enumerate(P):
if p != ".":
gal.append([line, col])
# Expansion
lines = [l[0] for l in gal]
cols = [l[1] for l in gal]
lines_empty = []
for line in range(0, len(L)):
if lines.count(line) == 0:
lines_empty.append(line)
for line in reversed(lines_empty):
for g in reversed(gal):
if g[0] > line:
g[0] +=1
cols_empty = []
for col in range(0, len(L[0])):
if cols.count(col) == 0:
cols_empty.append(col)
for col in reversed(cols_empty):
for g in reversed(gal):
if g[1] > col:
g[1] +=1
# Calcul distance entres les galaxies
for s in range(0, len(gal)):
for n in range(1, len(gal)-s):
S+= (abs(gal[s+n][0] - gal[s][0])) + abs((gal[s+n][1] - gal[s][1]))
print(S)

44
d11/run2.py Normal file
View File

@ -0,0 +1,44 @@
import sys
L = sys.stdin.read().splitlines()
gal = []
S=0
# Parser pour avoir les galaxies
for line, P in enumerate(L):
for col, p in enumerate(P):
if p != ".":
gal.append([line, col])
# Expansion
lines = [l[0] for l in gal]
cols = [l[1] for l in gal]
lines_empty = []
for line in range(0, len(L)):
if lines.count(line) == 0:
lines_empty.append(line)
for line in reversed(lines_empty):
for g in reversed(gal):
if g[0] > line:
g[0] +=999999
cols_empty = []
for col in range(0, len(L[0])):
if cols.count(col) == 0:
cols_empty.append(col)
for col in reversed(cols_empty):
for g in reversed(gal):
if g[1] > col:
g[1] +=999999
# Calcul distance entres les galaxies
for s in range(0, len(gal)):
for n in range(1, len(gal)-s):
S+= (abs(gal[s+n][0] - gal[s][0])) + abs((gal[s+n][1] - gal[s][1]))
print(S)