[2025][ruby][3.2]
change nunqrpmkxlqpvokunopvpwkqunquqmqr
commit d4a3deb1b82f2167bb6384a2e713c936f1788ea0
author Alpha Chen <alpha@kejadlen.dev>
date
parent ywosutmz
diff --git a/2025/ruby/day_03.rb b/2025/ruby/day_03.rb
index 374329f..9753d0d 100644
--- a/2025/ruby/day_03.rb
+++ b/2025/ruby/day_03.rb
@@ -1,10 +1,22 @@
+Bank = Data.define(:batteries) do
+  def joltage(n)
+    battery = batteries[0..-n].max
+    index = batteries.index(battery)
+
+    if n > 1
+      battery.to_s + Bank.new(batteries[index+1..]).joltage(n-1)
+    else
+      battery.to_s
+    end
+  end
+end
+
 banks = DATA.read.lines(chomp: true)
   .map { it.chars.map(&:to_i) }
+  .map { Bank.new(it) }
 
 pp banks.map {|bank|
-  a = bank[0..-2].max
-  i = bank.index(a)
-  [a, bank[i+1..].max].join.to_i
+  bank.joltage(12).to_i
 }.sum
 
 __END__