aoc-2022/day_5.py

30 lines
1.0 KiB
Python
Raw Permalink Normal View History

2022-12-07 20:34:43 +00:00
import aocd
from dotenv import load_dotenv
load_dotenv()
puzzle_input = aocd.get_data(day=5, year=2022)
inputs = puzzle_input.split('\n\n')
cargo = [[],[],[],[],[],[],[],[],[]]
moves = inputs[1].replace('move ','').replace(' from ',',').replace(' to ',',').split('\n')
transposed_cargo = inputs[0].split('\n')[:-1]
for s,stack in enumerate(cargo):
for transposed_stack in reversed(transposed_cargo):
for letter in transposed_stack[1+s*4]:
if letter != ' ':
stack.append(letter)
for m,move in enumerate(moves):
column_to = int(move.split(',')[2])-1
column_from = int(move.split(',')[1])-1
moved_number = int(move.split(',')[0])
# Part 1
# cargo[column_to] = cargo[column_to] + list(reversed(cargo[column_from][-moved_number::]))
# Part 2
cargo[column_to] = cargo[column_to] + cargo[column_from][-moved_number::]
2022-12-07 20:34:43 +00:00
cargo[column_from] = cargo[column_from][:-moved_number]
answer = []
for stack in cargo:
answer.append(stack[-1])
print(str("".join(answer)))