ho day8 moest nog

This commit is contained in:
2020-12-09 09:01:00 +01:00
parent 23c9844a9f
commit 441fcc525c

View File

@@ -1,3 +1,6 @@
import copy
def part1():
file = open("input.txt")
@@ -30,8 +33,61 @@ def part1():
print("Part 1: %d" % acc)
def brute(i, instructions):
op = instructions[i]['op']
if op == 'nop':
instructions[i]['op'] = 'jmp'
elif op == 'jmp':
instructions[i]['op'] = 'nop'
else:
return 0
finger = 0
acc = 0
while not instructions[finger]['visited']:
op = instructions[finger]['op']
arg = instructions[finger]['arg']
instructions[finger]['visited'] = True
if op == 'nop':
finger += 1
continue
elif op == 'jmp':
finger += arg
elif op == 'acc':
acc += arg
finger += 1
if instructions[len(instructions) - 1]['visited']:
return acc
return 0
def part2():
print("Part 2: %d")
file = open("input.txt")
instructions = []
for line in file:
args = line.strip().split(" ")
instructions.append({
'op': args[0],
'arg': int(args[1]),
'visited': False
})
acc = 0
for i in range(0, len(instructions)):
op = instructions[i]['op']
if op == 'jmp' or op == 'nop':
acc = brute(i, copy.deepcopy(instructions))
if acc > 0:
break
print("Part 2: %d" % acc)
if __name__ == "__main__":