diff --git a/2022/ruby/day_20.rb b/2022/ruby/day_20.rb new file mode 100644 index 0000000..0dbcca7 --- /dev/null +++ b/2022/ruby/day_20.rb @@ -0,0 +1,19 @@ +list = ARGF.read.lines(chomp: true).map(&:to_i) + +list = list.map { _1 * 811589153 } + +list = list.map.with_index { [_2, _1] } +10.times do + (0...list.size).each do |i| + j = list.index {|ii,_| ii == i } + _, n = list.delete_at(j) + j += n + j %= list.size + list.insert(j, [i, n]) + end +end + +list = list.map(&:last) + +i = list.index(0) +p [1000, 2000, 3000].sum { list.fetch((i + _1) % list.size) }