Abstract intocode into separate files.
This commit is contained in:
24
day2.cr
24
day2.cr
@@ -1,25 +1,11 @@
|
||||
require "./intcode.cr"
|
||||
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
|
||||
prog = lines.clone
|
||||
prog[1] = noun
|
||||
prog[2] = verb
|
||||
if run(prog, [] of Int32)[1][0] == 19690720
|
||||
puts 100*noun + verb
|
||||
break
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user