Added 2016 day12

This commit is contained in:
Luke Hubmayer-Werner 2018-12-03 20:05:19 +10:30
parent 3d819bf6b7
commit e4947abb33
2 changed files with 53 additions and 0 deletions

23
2016/day12-input Normal file
View File

@ -0,0 +1,23 @@
cpy 1 a
cpy 1 b
cpy 26 d
jnz c 2
jnz 1 5
cpy 7 c
inc d
dec c
jnz c -2
cpy a c
inc a
dec b
jnz b -2
cpy c b
dec d
jnz d -6
cpy 14 c
cpy 14 d
inc a
dec d
jnz d -2
dec c
jnz c -5

30
2016/day12.py Normal file
View File

@ -0,0 +1,30 @@
with open('day12-input', 'r') as file:
data = [l.strip('\n') for l in file]
TOKENS = [line.split(' ') for line in data]
def run(registers):
def get(key):
try:
return registers[key]
except KeyError:
return int(key)
i = 0
while i < len(data):
tokens = TOKENS[i] # data[i].split(' ')
if tokens[0] == 'cpy':
registers[tokens[2]] = get(tokens[1])
elif tokens[0] == 'inc':
registers[tokens[1]] += 1
elif tokens[0] == 'dec':
registers[tokens[1]] -= 1
else: # elif tokens[0] == 'jnz':
if get(tokens[1]) != 0:
i += int(tokens[2]) - 1
i += 1
registers1 = {'a': 0, 'b': 0, 'c': 0, 'd': 0}
run(registers1)
print(registers1['a']) # Part 1
registers2 = {'a': 0, 'b': 0, 'c': 1, 'd': 0}
run(registers2)
print(registers2['a']) # Part 2 - Slow!