1
2
3
4
5
6
7
8
9
10
11
12
13
14
input = DATA.read
  .scan(/\d+/).map(&:to_i)
  .each_slice(2).to_a.transpose
  .map(&:sort)

left, right = input

# part one
pp left.zip(right).sum { (_1 - _2).abs }

# part two
pp left.sum { _1 * right.count(_1) }

__END__