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
|