58 lines
1.3 KiB
Python
58 lines
1.3 KiB
Python
with open("day5/day5.txt", "r") as f:
|
|
file = f.read()
|
|
|
|
rows = file.split("\n")
|
|
|
|
i = 0
|
|
columns = {}
|
|
# put innitial crates to a dictionary
|
|
for row in rows:
|
|
split = row.split(" ")
|
|
if "1" in split:
|
|
break
|
|
empty = 0
|
|
cols = 1
|
|
for col in split:
|
|
if col == "":
|
|
empty += 1
|
|
if empty == 4:
|
|
empty = 0
|
|
# if columns.get(cols, None) is None:
|
|
# columns[cols] = [col]
|
|
# else:
|
|
# columns[cols].append(col)
|
|
cols += 1
|
|
continue
|
|
if columns.get(cols, None) is None:
|
|
columns[cols] = [col]
|
|
else:
|
|
columns[cols].append(col)
|
|
cols += 1
|
|
i += 1
|
|
|
|
for i in columns:
|
|
columns[i].reverse()
|
|
moveList = []
|
|
instructions = rows[i+1:]
|
|
for row in instructions:
|
|
if row == "":
|
|
continue
|
|
split = row.split(" ")
|
|
move = int(split[1])
|
|
move_from = int(split[3])
|
|
move_to = int(split[5])
|
|
for _ in range(int(move)):
|
|
moveList.append(columns[move_from][-1])
|
|
columns[move_from].pop()
|
|
for _ in range(int(move)):
|
|
columns[move_to].append(moveList[-1])
|
|
moveList.pop()
|
|
|
|
res = ""
|
|
for i in range(1, len(columns)+1):
|
|
print(i)
|
|
res += columns[i][-1]
|
|
|
|
print(res.replace("[", "").replace("]", ""))
|
|
print(columns)
|