2019 day-2 p1 p2 20min slow as hell

This commit is contained in:
Xevion
2019-12-01 23:25:07 -06:00
parent 4c48cae20c
commit 188596df7d
2 changed files with 25 additions and 1 deletions

View File

@@ -0,0 +1 @@
1,0,0,3,1,1,2,3,1,3,4,3,1,5,0,3,2,13,1,19,1,19,10,23,2,10,23,27,1,27,6,31,1,13,31,35,1,13,35,39,1,39,10,43,2,43,13,47,1,47,9,51,2,51,13,55,1,5,55,59,2,59,9,63,1,13,63,67,2,13,67,71,1,71,5,75,2,75,13,79,1,79,6,83,1,83,5,87,2,87,6,91,1,5,91,95,1,95,13,99,2,99,6,103,1,5,103,107,1,107,9,111,2,6,111,115,1,5,115,119,1,119,2,123,1,6,123,0,99,2,14,0,0

View File

@@ -2,4 +2,27 @@ import os
import sys
PATH = os.path.join(sys.path[0], '..', 'input')
DATA = list(map(int, open(PATH, 'r').readlines()))
orig = list(map(int, open(PATH, 'r').read().split(',')))
def calculate(noun, verb):
arr = orig.copy()
arr[1] = noun
arr[2] = verb
curpos = 0
while curpos < len(arr):
if arr[curpos] == 1:
arr[arr[curpos + 3]] = arr[arr[curpos + 1]] + arr[arr[curpos + 2]]
elif arr[curpos] == 2:
arr[arr[curpos + 3]] = arr[arr[curpos + 1]] * arr[arr[curpos + 2]]
elif arr[curpos] == 99:
# print(f'Stopped at {curpos}')
break
curpos += 4
return arr[0]
print(calculate(12, 2))
for noun in range(0, 100):
for verb in range(0, 100):
if calculate(noun, verb) == 19690720:
print(100 * noun + verb)