m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/15/b.rb
diff options
context:
space:
mode:
Diffstat (limited to '15/b.rb')
-rw-r--r--15/b.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/15/b.rb b/15/b.rb
new file mode 100644
index 0000000..7c7b3f9
--- /dev/null
+++ b/15/b.rb
@@ -0,0 +1,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..30000000).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