Day 19.1
change
commit 76af1b6d083b0b76ee56e06916648702a7b50df1
author Alpha Chen <alpha.chen@gmail.com>
date
parent e637ae3e
diff --git a/ruby/day_19.rb b/ruby/day_19.rb
index a7d9db4..aeb9019 100644
--- a/ruby/day_19.rb
+++ b/ruby/day_19.rb
@@ -1,11 +1,14 @@
 replacements, molecule = DATA.read.chomp.split("\n\n")
-replacements = replacements.scan(/(\w+) \=> (\w+)/)
-puts replacements.flat_map {|k,v|
-  m = molecule.split(k, -1)
-  (0...m.size-1).map {|i|
-    m[0..i].join(k) + v + m[i+1..-1].join(k)
-  }
-}.uniq.size
+replacements = replacements.scan(/(\w+) \=> (\w+)/).map(&:reverse).sort_by {|k,_| -k.size}
+
+steps = 0
+until molecule == ?e
+  k,v = replacements.find {|k,_| molecule.include?(k) }
+  steps += molecule.scan(/#{k}/).size
+
+  molecule.gsub!(k, v)
+  puts "#{steps}: #{molecule}"
+end
 __END__
 Al => ThF
 Al => ThRnFAr