diff options
Diffstat (limited to 'day03/part1')
-rwxr-xr-x | day03/part1 | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/day03/part1 b/day03/part1 new file mode 100755 index 0000000..94d3b37 --- /dev/null +++ b/day03/part1 @@ -0,0 +1,35 @@ +#!/usr/bin/env ruby + +input = $stdin.readlines.map(&:strip).map{|x|x.split(",")} + +def map_wire(wire_segments) + wire = [] + x = 0 + y = 0 + wire_segments.each do |seg| + dir = seg[0] + len = seg[1..-1].to_i + len.times do + case dir + when "R" + x += 1 + when "L" + x -= 1 + when "U" + y += 1 + when "D" + y -= 1 + end + wire << [x, y] + end + end + wire +end + +wire1 = map_wire(input[0]) +wire2 = map_wire(input[1]) + +intersections = wire1 & wire2 +dists = intersections.map{|x,y| x.abs + y.abs} - [0] + +puts dists.min |