AdventOfCode-2017/day10_1.rb

20 lines
562 B
Ruby

initial_string = [*0..255]
# initial_string = [*0..4]
shifts = File.open('puzzle_10.txt').read.split(',').map(&:to_i)
# shifts = [3, 4, 1, 5]
skip_size = 0
offset = 0
for shift in shifts do
initial_string.rotate! offset
if shift > 0 then
rotated_bit = initial_string[0..shift - 1]
kept_bit = initial_string[shift..initial_string.length-1]
initial_string = rotated_bit.reverse + kept_bit
end
initial_string.rotate! -offset
offset += shift + skip_size
skip_size += 1
end
print initial_string[0] * initial_string[1]