advent-of-code/2015/day-03/part_two.rb
Patrick Auernig 3c57921438 Refactor 2015 days 01 to 10
Split parts into separate files and remove some unused files
2021-12-08 01:05:17 +01:00

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)