Added 2019 day 02

This commit is contained in:
Akumatic 2019-12-02 10:57:18 +01:00
parent 97b8da4ab1
commit 17217d3d2c
2 changed files with 38 additions and 0 deletions

37
2019/day02.py Normal file
View File

@ -0,0 +1,37 @@
""" https://adventofcode.com/2019/day/2 """
def readFile():
import os.path as p
dName = p.dirname(__file__)
fName = p.basename(__file__).split(".")[0]
with open(p.join(dName, "input", f"{fName}.txt"), "r") as f:
return [int(num) for num in f.readline().split(",")]
def getOutput(vals : list):
for i in range(0, len(vals), 4):
if vals[i] == 99:
break
elif vals[i] == 1:
vals[vals[i+3]] = vals[vals[i+1]] + vals[vals[i+2]]
else: # vals[i] == 2
vals[vals[i+3]] = vals[vals[i+1]] * vals[vals[i+2]]
return vals[0]
def part1(vals : list):
memory = vals.copy()
memory[1], memory[2] = 12, 2
return getOutput(memory)
def part2(vals : list):
for noun in range(100):
for verb in range(100):
memory = vals.copy()
memory[1], memory[2] = noun, verb
if getOutput(memory) == 19690720:
return 100 * noun + verb
if __name__ == "__main__":
vals = readFile()
print(f"Part 1: {part1(vals)}")
print(f"Part 2: {part2(vals)}")

1
2019/input/day02.txt Normal file
View File

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