diff --git a/2019/day02.py b/2019/day02.py new file mode 100644 index 0000000..872e55c --- /dev/null +++ b/2019/day02.py @@ -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)}") \ No newline at end of file diff --git a/2019/input/day02.txt b/2019/input/day02.txt new file mode 100644 index 0000000..383b6bd --- /dev/null +++ b/2019/input/day02.txt @@ -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