[2019][ruby][3.a]
change xupkvlryqrywmxvsswmqowroxquorrtr
commit b30bd29e91fe6db809da5d7af566b3a9e97af4da
author Alpha Chen <alpha@kejadlen.dev>
date
parent xxrvwsnq
diff --git a/2019/ruby/day_03.rb b/2019/ruby/day_03.rb
new file mode 100644
index 0000000..c99257a
--- /dev/null
+++ b/2019/ruby/day_03.rb
@@ -0,0 +1,23 @@
+wire_paths = ARGF.read.lines.map {|l|
+  l.split(?,).map {|i| [i[0], i[1..-1].to_i] }
+}
+
+wire_points = wire_paths.map {|path|
+  path.each.with_object([[0, 0]]) {|(dir, length), points|
+    x, y = points.last
+    length.times {|i|
+      points << case dir
+                when ?R then [x+i+1, y]
+                when ?U then [x, y+i+1]
+                when ?L then [x-i-1, y]
+                when ?D then [x, y-i-1]
+                end
+    }
+  }
+}
+
+intersections = wire_points[0] & wire_points[1]
+intersections.delete([0, 0])
+
+distances = intersections.map {|(x, y)| x.abs + y.abs }
+puts distances.min