-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDay5.py
More file actions
53 lines (48 loc) · 1.52 KB
/
Day5.py
File metadata and controls
53 lines (48 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import re
input = open("puzzle_input.txt", "r")
#Matrice hauteur h largeur l
#l = 3
l=9
#For Part 1
def move(num:int,fro:int,to:int,M):
#M[fro][i] to #[to][i]
for number in range(num):
crate = M[fro][-1]
print("crate is [" + crate + "]")
M[fro] = M[fro][:len(M[fro]) - 1] #Pop from originating column
M[to] = M[to] + crate
#For Part2
def move_9001(num:int,fro:int,to:int,M):
#M[fro][i] to #[to][i]
crate = M[fro][-num:]
print("crate is [" + crate + "]")
M[fro] = M[fro][:len(M[fro]) - num] #Pop from originating column
M[to] = M[to] + crate
if __name__ == '__main__':
#Initiate matrix
M = ["" for i in range(l)]
line = input.readline()
line_counter = 0
#Remplissage de la matrice
while "[" in line:
column_counter = 0
for char in line :
column_counter += 1
if re.findall("[A-Z]", char):
M[column_counter//4] = char + M[column_counter//4] #//4 à cause des espaces, à l'envers pour mettre une colonne ds une liste
line = input.readline()
line_counter += 1
print(M)
input.readline()#skip de la ligne vide
line = input.readline()
while "move" in line :
num = int(re.findall("move (\d+)", line)[0])
fro = int(re.findall("from (\d+)", line)[0]) - 1
to = int(re.findall("to (\d+)", line)[0]) - 1
move_9001(num, fro, to, M)
print(M)
line = input.readline()
result = ""
for elem in M:
result += elem[-1]
print(result)