[2018][ruby][06.1]
change qyvsnnlpvxqkltszzmkwtrzxzkwtvmox
commit af77f497c4adbc9585db32d867a1901ac8bc1090
author Alpha Chen <alpha.chen@gmail.com>
date
parent lqxvszzo
diff --git a/2018/ruby/day_06.rb b/2018/ruby/day_06.rb
index 1467ade..c56afbe 100644
--- a/2018/ruby/day_06.rb
+++ b/2018/ruby/day_06.rb
@@ -20,26 +20,30 @@ end
 grid = {}
 (x_min..x_max).each do |x|
   (y_min..y_max).each do |y|
-    distances = coords.map {|id, coord|
-      [id, manhattan_distance(coord, [x,y])]
-    }
-    min_distance = distances.map(&:last).min
-    closests = distances.select {|_,distance| distance == min_distance }
-    grid[[x,y]] = closests.length > 1 ? nil : closests.first.first
+    # Part One
+    # distances = coords.map {|id, coord|
+    #   [id, manhattan_distance(coord, [x,y])]
+    # }
+    # min_distance = distances.map(&:last).min
+    # closests = distances.select {|_,distance| distance == min_distance }
+    # grid[[x,y]] = closests.length > 1 ? nil : closests.first.first
+
+    # Part Two
+    total_distance = coords.map {|_,coord| manhattan_distance(coord, [x,y]) }.sum
+    grid[[x,y]] = true if total_distance < 10000
   end
 end
 
-infinites = Set.new
-(x_min..x_max).each do |x|
-  infinites << grid[[x,y_min]]
-  infinites << grid[[x,y_max]]
-end
-(y_min..y_max).each do |y|
-  infinites << grid[[x_min,y]]
-  infinites << grid[[x_max,y]]
-end
-
-p grid
-
-p infinites
-p grid.values.group_by(&:itself).transform_values(&:count).reject {|k,_| infinites.include?(k) }.max_by(&:last)
+# Part One
+# infinites = Set.new
+# (x_min..x_max).each do |x|
+#   infinites << grid[[x,y_min]]
+#   infinites << grid[[x,y_max]]
+# end
+# (y_min..y_max).each do |y|
+#   infinites << grid[[x_min,y]]
+#   infinites << grid[[x_max,y]]
+# end
+# p grid.values.group_by(&:itself).transform_values(&:count).reject {|k,_| infinites.include?(k) }.max_by(&:last)
+
+p grid.size