[2023][ruby][13.1]
change vnzwvvrlsruvpmpsrvwmwwvtltyqwtrp
commit 0ba82ebfd11f31860804777da9e86e28bd5d5bdb
author Alpha Chen <alpha@kejadlen.dev>
date
parent pqluzpmr
diff --git a/2023/ruby/day_13.rb b/2023/ruby/day_13.rb
new file mode 100644
index 0000000..7a90360
--- /dev/null
+++ b/2023/ruby/day_13.rb
@@ -0,0 +1,14 @@
+patterns = ARGF.read.split("\n\n")
+  .map { _1.split("\n").map(&:chars) }
+
+def find_fold(pattern)
+  (0.5...pattern.length-0.5).step(1).find {|fold|
+    a = pattern[0..fold.floor]
+    b = pattern[fold.ceil..]
+    a.reverse.zip(b).reject { _1.any?(&:nil?) }.all? { _1 == _2 }
+  }&.ceil
+end
+
+verts = patterns.map { find_fold(_1.transpose) }.compact
+hors = patterns.map { find_fold(_1) }.compact
+p verts.sum + hors.sum { _1 * 100 }