27 lines
566 B
Ruby
Executable File
27 lines
566 B
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
require "set"
|
|
require_relative "common"
|
|
|
|
def part_two(chars)
|
|
position_s = [0, 0]
|
|
position_r = position_s.dup
|
|
|
|
chars
|
|
.each_with_object(Set[position_s.dup])
|
|
.with_index(1) do |(direction, visited), index|
|
|
if index.even?
|
|
next_pos = apply_direction(position_s, direction)
|
|
visited.add(next_pos)
|
|
position_s = next_pos
|
|
else
|
|
next_pos = apply_direction(position_r, direction)
|
|
visited.add(next_pos)
|
|
position_r = next_pos
|
|
end
|
|
end
|
|
.size
|
|
end
|
|
|
|
puts part_two(INPUT.first)
|