Solve 2016 days 2 and 3.
This commit is contained in:
34
2016/d2.py
Normal file
34
2016/d2.py
Normal file
@@ -0,0 +1,34 @@
|
||||
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)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user