Watch
1
0
Fork
You've already forked advent-of-code
0
advent-of-code/2019/day02/part1.rb

29 lines
542 B
Ruby

# frozen_string_literal: true
program = File.read(File.join(__dir__, 'input'))
def run(mem)
pc = 0
loop do
case mem[pc]
when 1
r1, r2, r3 = mem[pc+1], mem[pc+2], mem[pc+3]
mem[r3] = mem[r1] + mem[r2]
pc += 4
when 2
r1, r2, r3 = mem[pc+1], mem[pc+2], mem[pc+3]
mem[r3] = mem[r1] * mem[r2]
pc += 4
when 99
return
else
raise StandardError, "unexpected opcode: #{opcode}"
end
end
end
mem = program.split(',').map(&:to_i)
mem[1] = 12
mem[2] = 2
run(mem)
puts mem[0]