diff options
Diffstat (limited to 'day02/part2')
-rwxr-xr-x | day02/part2 | 43 |
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 |