mirror of
https://github.com/Xevion/advent-of-code.git
synced 2025-12-05 23:14:16 -06:00
2019 day-2 p1 p2 20min slow as hell
This commit is contained in:
@@ -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
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user