Added 2019 day 02
This commit is contained in:
parent
97b8da4ab1
commit
17217d3d2c
37
2019/day02.py
Normal file
37
2019/day02.py
Normal 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
1
2019/input/day02.txt
Normal 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
|
Loading…
x
Reference in New Issue
Block a user