Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- import re
- crates=""
- steps=""
- def parse_crates(crates):
- crates_list=[[] for num in crates.split("\n")[-2] if num.isnumeric()]
- crates=crates.split("\n")[:-2][::-1]
- for row in crates:
- row=re.sub("[\[\]]","",row)
- row=re.sub("(\s\s\s\s)"," ",row).split(" ")
- [crates_list[i].append(row[i]) for i in range(len(row)) if row[i]]
- return crates_list
- with open("input.txt") as file:
- for line in file:
- if line.strip():
- crates+=line
- else:
- break
- commands_list=file.read().split("\n")[:-1]
- crates_list=parse_crates(crates)
- for command in commands_list:
- count, from_stack, to_stack=[int(i) for i in re.findall("\d+", command)]
- for _ in range(count):
- crates_list[to_stack-1]+=crates_list[from_stack-1].pop()
- print("".join([ch.pop() for ch in crates_list]))
- #############################################################################################
- #!/usr/bin/env python3
- import re
- crates=""
- steps=""
- def parse_crates(crates):
- crates_list=[[] for num in crates.split("\n")[-2] if num.isnumeric()]
- crates=crates.split("\n")[:-2][::-1]
- for row in crates:
- row=re.sub("[\[\]]","",row)
- row=re.sub("(\s\s\s\s)"," ",row).split(" ")
- [crates_list[i].append(row[i]) for i in range(len(row)) if row[i]]
- return crates_list
- with open("input.txt") as file:
- for line in file:
- if line.strip():
- crates+=line
- else:
- break
- commands_list=file.read().split("\n")[:-1]
- crates_list=parse_crates(crates)
- for command in commands_list:
- count, from_stack, to_stack=[int(i) for i in re.findall("\d+", command)]
- stack=[]
- for _ in range(count):
- stack+=crates_list[from_stack-1].pop()
- crates_list[to_stack-1]+=stack[::-1]
- print("".join([ch.pop() for ch in crates_list]))
Advertisement
Add Comment
Please, Sign In to add comment