diff --git a/2020/ruby/day_15.rb b/2020/ruby/day_15.rb
new file mode 100644
index 0000000..87d131a
--- /dev/null
+++ b/2020/ruby/day_15.rb
@@ -0,0 +1,31 @@
+# turns = ARGF.read.scan(/\d+/).map(&:to_i)
+# until turns.size == 2020
+# turns << if turns.count(turns.last) == 1
+# 0
+# else
+# a, b = turns.filter_map.with_index {|x,i|
+# x == turns.last ? i : nil
+# }[-2,2]
+# b - a
+# end
+# end
+
+start = ARGF.read.scan(/\d+/).map(&:to_i)
+
+turns = Hash.new
+last = start.pop
+start.each.with_index do |x,i|
+ turns[x] = i+1
+end
+
+(start.size+1...30000000).each do |turn|
+ if n = turns[last]
+ turns[last] = turn
+ last = turn - n
+ else
+ turns[last] = turn
+ last = 0
+ end
+end
+
+p last