[2024][ruby][3.x] trolling with flip-flops
diff --git a/2024/ruby/day_03.rb b/2024/ruby/day_03.rb
index c1ccf60..cd214c0 100644
--- a/2024/ruby/day_03.rb
+++ b/2024/ruby/day_03.rb
@@ -1,8 +1,21 @@
-input = DATA.read
- .gsub(/don't\(\)(?~do\(\))do\(\)/, "") # part two
- .scan(/mul\((\d+),(\d+)\)/)
- .map { _1.map(&:to_i) }
+# input = DATA.read
+# .gsub(/don't\(\)(?~do\(\))do\(\)/, "") # part two
+# .scan(/mul\((\d+),(\d+)\)/)
+# .map { _1.map(&:to_i) }
+#
+# pp input.sum { _1 * _2 }
-pp input.sum { _1 * _2 }
+# because I felt like using a flip-flop...
+input = DATA.read.scan(/(do|don't)\(\)|mul\((\d+),(\d+)\)/)
+input.unshift(["do"])
+
+sum = 0
+input.each do |dodont, *mul|
+ next unless (dodont == "do")..(dodont == "don't")
+ next unless dodont.nil?
+ a, b = mul.map(&:to_i)
+ sum += a * b
+end
+pp sum
__END__