[2020][ruby][3.x] too clever
change rmpmvpqmqkltsmzlxxqvvsuqryksnxmn
commit 9aac35595103a4688587e4e9d998eaa95777ad90
author Alpha Chen <alpha@kejadlen.dev>
date
parent ktqxpvor
diff --git a/2020/ruby/day_03.rb b/2020/ruby/day_03.rb
index abf4912..9e762a7 100644
--- a/2020/ruby/day_03.rb
+++ b/2020/ruby/day_03.rb
@@ -1,4 +1,6 @@
 map = ARGF.read.split("\n").map(&:chars)
+rows = map.size
+cols = map[0].size
 slopes = [
   [1, 1],
   [3, 1],
@@ -7,12 +9,7 @@ slopes = [
   [1, 2],
 ]
 puts slopes.map {|dx,dy|
-  x, y = 0, 0
-  trees = 0
-  until y >= map.length
-    trees += 1 if map[y][x % map[0].size] == ?#
-    x += dx
-    y += dy
-  end
-  trees
+  map.each_slice(dy).map(&:first)
+    .map.with_index {|row,i| row[dx*i % cols] }
+    .count(?#)
 }.reduce(&:*)