[2023][ruby][9.x]
change nnunzowpymoxrvupqpntsyuxxnmvomts
commit 26eefa86e30338306e6062801285d3373c62f135
author Alpha Chen <alpha@kejadlen.dev>
date
parent nzxmlssp
diff --git a/2023/ruby/day_09.rb b/2023/ruby/day_09.rb
new file mode 100644
index 0000000..3461a7b
--- /dev/null
+++ b/2023/ruby/day_09.rb
@@ -0,0 +1,26 @@
+histories = ARGF.readlines.map { _1.scan(/-?\d+/).map(&:to_i) }
+
+# part one
+p histories
+  .map {|history|
+    diffs = [history]
+    until diffs.last.all?(&:zero?)
+      diffs << diffs.last.each_cons(2).map { _2 - _1 }
+    end
+
+    diffs.sum(&:last)
+  }
+  .sum
+
+# part two
+p histories
+  .map {|history|
+    diffs = [history]
+    until diffs.last.all?(&:zero?)
+      diffs << diffs.last.each_cons(2).map { _2 - _1 }
+    end
+
+    diffs.map(&:first).reverse.inject { _2 - _1 }
+  }
+  .sum
+