[2025][ruby][6.x]
change stpnrqqvrpquuypsqtuzlpzmxplumnso
commit f5c3b85e609135f4b27ef38b394de3f0af164803
author Alpha Chen <alpha@kejadlen.dev>
date
parent toolxouk
diff --git a/2025/ruby/day_06.rb b/2025/ruby/day_06.rb
index c56a188..9b0714d 100644
--- a/2025/ruby/day_06.rb
+++ b/2025/ruby/day_06.rb
@@ -1,25 +1,21 @@
-# problems = DATA.read
-#   .lines
-#   .map { it.split(/\s+/).reject(&:empty?) }
-#   .transpose
-#   .map { it[0..-2].map(&:to_i) << it[-1] }
-#
-# pp problems.map {|problem|
-#   problem[0..-2].inject(&problem[-1].to_sym)
-# }.sum
-
 problems = DATA.read
   .lines(chomp: true)
   .map(&:chars)
+  .rotate(-1)
   .transpose
-  .map {|row| row.reject { it == " " }}
-  .reject(&:empty?)
-  .slice_before { "+*".chars.include?(it.last) }
+  .reject { it.join.strip.empty? }
+  .slice_before { "+*".chars.include?(it.first) }
+  .map {|problem|
+    op = problem[0][0].to_sym
+    args = problem.map { it[1..] }
+    [op, args]
+  }
 
-pp problems.map {|problem|
-  op = problem[0].pop
-  args = problem.map(&:join).map(&:to_i)
-  args.inject(&op.to_sym)
-}.sum
+pp problems.sum {|op,args| args.transpose.map { it.join.to_i }.inject(&op) }
+pp problems.sum {|op,args| args.map { it.join.to_i }.inject(&op) }
 
 __END__
+123 328  51 64 
+ 45 64  387 23 
+  6 98  215 314
+*   +   *   +