35 lines
636 B
Python
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)
|
|
|
|
|
|
|