m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/15/a.rb
blob: 5341765866299049dcc8159228f491147b60e9cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
input = File.read('input.txt').split ','

@t = 1

last_spoken = {}
last_number = 0
input.each_with_index do |n, i|
  if i > 0
    last_spoken[last_number] = i
  end
  last_number = n.to_i
end

(input.length+1..2020).each do |turn|
  if !last_spoken[last_number]
    last_spoken[last_number] = turn - 1
    last_number = 0
  else
    new_last_number = (turn - 1) - last_spoken[last_number]
    last_spoken[last_number] = turn - 1
    last_number = new_last_number
  end
end

puts last_number