From e4947abb33abe634d8655708285188655bca4085 Mon Sep 17 00:00:00 2001 From: Luke Hubmayer-Werner Date: Mon, 3 Dec 2018 20:05:19 +1030 Subject: [PATCH] Added 2016 day12 --- 2016/day12-input | 23 +++++++++++++++++++++++ 2016/day12.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 2016/day12-input create mode 100644 2016/day12.py diff --git a/2016/day12-input b/2016/day12-input new file mode 100644 index 0000000..0eeb395 --- /dev/null +++ b/2016/day12-input @@ -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 diff --git a/2016/day12.py b/2016/day12.py new file mode 100644 index 0000000..5bbaebd --- /dev/null +++ b/2016/day12.py @@ -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!