summaryrefslogtreecommitdiffstats
path: root/19/py/d02.py
diff options
context:
space:
mode:
Diffstat (limited to '19/py/d02.py')
-rw-r--r--19/py/d02.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/19/py/d02.py b/19/py/d02.py
new file mode 100644
index 0000000..6b5aa0a
--- /dev/null
+++ b/19/py/d02.py
@@ -0,0 +1,49 @@
+import sys
+
+def pt1(input):
+ program = [int(x) for x in input[0].split(",")]
+
+ memory = program.copy()
+ memory[1] = 12
+ memory[2] = 2
+
+ pointer = 0
+ while True:
+ if memory[pointer] == 99:
+ break
+ elif memory[pointer] == 1:
+ memory[memory[pointer+3]] = memory[memory[pointer+1]] + memory[memory[pointer+2]]
+ elif memory[pointer] == 2:
+ memory[memory[pointer+3]] = memory[memory[pointer+1]] * memory[memory[pointer+2]]
+ pointer += 4
+ return memory[0]
+
+def pt2(input):
+ program = [int(x) for x in input[0].split(",")]
+
+ for n in range(100):
+ for v in range(100):
+ memory = program.copy()
+ memory[1] = n
+ memory[2] = v
+
+ pointer = 0
+ while True:
+ if memory[pointer] == 99:
+ break
+ elif memory[pointer] == 1:
+ memory[memory[pointer+3]] = memory[memory[pointer+1]] + memory[memory[pointer+2]]
+ elif memory[pointer] == 2:
+ memory[memory[pointer+3]] = memory[memory[pointer+1]] * memory[memory[pointer+2]]
+ pointer += 4
+ if memory[0] == 19690720:
+ return (n, v, n*100 + v)
+
+if __name__ == "__main__":
+ import cProfile
+
+ input = open("../input/02", "r").readlines()
+ cProfile.run("pt1(input)")
+ cProfile.run("pt2(input)")
+ print(pt1(input))
+ print(pt2(input))