Add day 8 solutions
This commit is contained in:
parent
e56615e7ee
commit
d222b38512
|
@ -0,0 +1,66 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
inputs = ["example.txt", "input.txt"]
|
||||
#inputs = ["example.txt"]
|
||||
#inputs = ["input.txt"]
|
||||
|
||||
registers = {}
|
||||
|
||||
def get_value(register):
|
||||
if register not in registers:
|
||||
registers[register] = 0
|
||||
return int(registers[register])
|
||||
|
||||
def compare(operation, register, b):
|
||||
result = False
|
||||
|
||||
a = get_value(register)
|
||||
b = int(b)
|
||||
|
||||
if operation == '>':
|
||||
if a > b:
|
||||
result = True
|
||||
elif operation == '<':
|
||||
if a < b:
|
||||
result = True
|
||||
elif operation == '>=':
|
||||
if a >= b:
|
||||
result = True
|
||||
elif operation == '<=':
|
||||
if a <= b:
|
||||
result = True
|
||||
elif operation == '!=':
|
||||
if a != b:
|
||||
result = True
|
||||
elif operation == '==':
|
||||
if a == b:
|
||||
result = True
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def solve(filename):
|
||||
with open(filename, "r") as fp:
|
||||
for line in fp:
|
||||
values = line.split()
|
||||
if compare(values[5], values[4], values[6]):
|
||||
if values[1] == 'inc':
|
||||
registers[values[0]] = get_value(values[0]) + int(values[2])
|
||||
elif values[1] == 'dec':
|
||||
registers[values[0]] = get_value(values[0]) - int(values[2])
|
||||
|
||||
biggest = 0
|
||||
for i in registers:
|
||||
print(i, registers[i])
|
||||
if int(registers[i]) > biggest:
|
||||
biggest = int(registers[i])
|
||||
|
||||
return biggest
|
||||
|
||||
|
||||
|
||||
for puzzle in inputs:
|
||||
print(puzzle, solve(puzzle))
|
||||
registers.clear()
|
|
@ -0,0 +1,61 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
inputs = ["example.txt", "input.txt"]
|
||||
registers = {}
|
||||
|
||||
def get_value(register):
|
||||
if register not in registers:
|
||||
registers[register] = 0
|
||||
return int(registers[register])
|
||||
|
||||
def compare(operation, register, b):
|
||||
result = False
|
||||
|
||||
a = get_value(register)
|
||||
b = int(b)
|
||||
|
||||
if operation == '>':
|
||||
if a > b:
|
||||
result = True
|
||||
elif operation == '<':
|
||||
if a < b:
|
||||
result = True
|
||||
elif operation == '>=':
|
||||
if a >= b:
|
||||
result = True
|
||||
elif operation == '<=':
|
||||
if a <= b:
|
||||
result = True
|
||||
elif operation == '!=':
|
||||
if a != b:
|
||||
result = True
|
||||
elif operation == '==':
|
||||
if a == b:
|
||||
result = True
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def solve(filename):
|
||||
big = 0
|
||||
with open(filename, "r") as fp:
|
||||
for line in fp:
|
||||
values = line.split()
|
||||
if compare(values[5], values[4], values[6]):
|
||||
if values[1] == 'inc':
|
||||
registers[values[0]] = get_value(values[0]) + int(values[2])
|
||||
if registers[values[0]] > big:
|
||||
big = registers[values[0]]
|
||||
elif values[1] == 'dec':
|
||||
registers[values[0]] = get_value(values[0]) - int(values[2])
|
||||
if registers[values[0]] > big:
|
||||
big = registers[values[0]]
|
||||
|
||||
return big
|
||||
|
||||
|
||||
for puzzle in inputs:
|
||||
print(puzzle, solve(puzzle))
|
||||
registers.clear()
|
|
@ -0,0 +1,4 @@
|
|||
b inc 5 if a > 1
|
||||
a inc 1 if b < 5
|
||||
c dec -10 if a >= 1
|
||||
c inc -20 if c == 10
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue