lines = File.read("day2.txt").lines.map(&.split(",").map(&.to_i32)).flatten def run(lines, noun, verb) lines[1] = noun lines[2] = verb pos = 0 loop do case lines[pos] when 1 lines[lines[pos+3]] = lines[lines[pos+1]] + lines[lines[pos+2]] pos += 4 when 2 lines[lines[pos+3]] = lines[lines[pos+1]] * lines[lines[pos+2]] pos += 4 when 99 break end end lines[0] end 100.times do |noun| 100.times do |verb| if run(lines.dup, noun, verb) == 19690720 puts 100*noun + verb break end end end