AdventOfCode-2019/day2.cr

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