day 5, hurrah for deques

This commit is contained in:
setop 2022-12-05 09:28:30 +01:00
parent aaece858e7
commit 0079c471bd
3 changed files with 48 additions and 0 deletions

1
.tool-versions Normal file
View File

@ -0,0 +1 @@
python 3.9.9

22
d05/part1.py Normal file
View File

@ -0,0 +1,22 @@
import sys
from collections import deque
# init data structure
S = list()
for _ in range(9):
S.append(deque())
# parse initial positions
for _ in range(8):
line = next(sys.stdin)
for j in range(9):
c = line[4*j+1]
if c != " ":
S[j].append(c)
line = next(sys.stdin)
line = next(sys.stdin)
# process
while line := sys.stdin.readline():
_, q, _, f, _, t = line.strip().split(" ")
for _ in range(int(q)):
S[int(t)-1].appendleft(S[int(f)-1].popleft())
# print final positions
print("".join(s.popleft() for s in S))

25
d05/part2.py Normal file
View File

@ -0,0 +1,25 @@
import sys
from collections import deque
# init data structure
S = list()
for _ in range(9):
S.append(deque())
# parse initial positions
for _ in range(8):
line = next(sys.stdin)
for j in range(9):
c = line[4*j+1]
if c != " ":
S[j].append(c)
line = next(sys.stdin)
line = next(sys.stdin)
# process
while line := sys.stdin.readline():
_, q, _, f, _, t = line.strip().split(" ")
tmp = deque()
for _ in range(int(q)):
tmp.append(S[int(f)-1].popleft())
for _ in range(int(q)):
S[int(t)-1].appendleft(tmp.pop())
# print final positions
print("".join(s.popleft() for s in S))