AoC2020/day15/solution.rb

20 lines
409 B
Ruby
Executable File

#!/bin/env ruby
require 'pry'
numbers = File.read('./input').split(',')
numbers.map!(&:to_i)
runs = 30000000
runs.times do |i|
next if i < numbers.size
num = numbers[-1]
prev_turn = numbers[..-2].reverse.find_index(num)
if prev_turn == nil
numbers.push(0)
else
new_num = (i - 1) - (numbers.size - 2 - prev_turn)
numbers.push(new_num)
end
end
puts numbers[-1]