AdventOfCode/Python/2022/05.py
2023-10-20 13:52:47 +02:00

28 lines
713 B
Python

from lib import *
input = read_input(2022, 5)
initial, instructions = input.split("\n\n")
nums, *initial = initial.splitlines()[::-1]
stacks = [[] for _ in pints(nums)]
for line in initial:
for i in range(0, len(line), 4):
if line[i + 1] != " ":
stacks[i // 4].append(line[i + 1])
instructions = [(cnt, i - 1, j - 1) for cnt, i, j in map(pints, instructions.splitlines())]
_stacks = deepcopy(stacks)
for cnt, i, j in instructions:
for _ in range(cnt):
stacks[j].append(stacks[i].pop())
print("".join(s[-1] for s in stacks))
stacks = _stacks
for cnt, i, j in instructions:
stacks[j] += stacks[i][-cnt:]
del stacks[i][-cnt:]
print("".join(s[-1] for s in stacks))