diff options
| author | Nat Lasseter <user@4574.co.uk> | 2019-12-03 07:38:35 +0000 | 
|---|---|---|
| committer | Nat Lasseter <user@4574.co.uk> | 2019-12-03 07:38:35 +0000 | 
| commit | 4099b94b8094ca753df43e946b8804b2bf71b080 (patch) | |
| tree | 9c181955dc55f166de90d1de87f107fa75d4a2ef /day03/part1 | |
| parent | be1c10d71edd16b68ef969f3b8b83dca6bb32dba (diff) | |
Day 03
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  | 
