Files
aocpy/2016/d2.py
2024-03-18 18:37:24 -04:00

35 lines
636 B
Python

from lib import *
second = True
if second is False:
keypad = "123\n456\n789".splitlines()
else:
keypad = "00100\n02340\n56789\n0ABC0\n00D00".splitlines()
data = open(0).read()
DIRS = {
"D": (1, 0),
"L": (0, -1),
"R": (0, 1),
"U": (-1, 0),
}
BOUND = len(keypad) - 1
pos = (2, 0)
r = ""
for row in data.splitlines():
for c in row:
dir = DIRS[c]
npos = pos[0] + dir[0], pos[1] + dir[1]
if npos[0] >= 0 and npos[0] <= BOUND and npos[1] >= 0 and npos[1] <= BOUND:
if keypad[npos[0]][npos[1]] != "0":
pos = npos
r += keypad[pos[0]][pos[1]]
print(r)