aboutsummaryrefslogtreecommitdiff
path: root/day02/part2
diff options
context:
space:
mode:
Diffstat (limited to 'day02/part2')
-rwxr-xr-xday02/part243
1 files changed, 43 insertions, 0 deletions
diff --git a/day02/part2 b/day02/part2
new file mode 100755
index 0000000..aadb860
--- /dev/null
+++ b/day02/part2
@@ -0,0 +1,43 @@
+#!/usr/bin/env ruby
+
+Input = $stdin.readlines[0].strip.split(",").map(&:to_i)
+
+noun = 0
+verb = 0
+
+loop do
+ $input = Input.dup
+ $input[1] = noun
+ $input[2] = verb
+
+ $pc = 0
+
+ def handle_code
+ case $input[$pc]
+ when 1
+ $input[$input[$pc+3]] = $input[$input[$pc+1]] + $input[$input[$pc+2]]
+ return true
+ when 2
+ $input[$input[$pc+3]] = $input[$input[$pc+1]] * $input[$input[$pc+2]]
+ return true
+ when 99
+ return false
+ end
+ end
+
+ loop do
+ continue = handle_code
+ break unless continue
+ $pc += 4
+ end
+
+ break if $input[0] == 19690720
+
+ verb += 1
+ if verb == 100
+ verb = 0
+ noun += 1
+ end
+end
+
+puts (100 * noun) + verb