28 lines
570 B
Crystal
28 lines
570 B
Crystal
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
|