input = STDIN.read.chomp columns = input .split("\n") .map{ |line| line.split("") } .transpose part_1 = columns.map do |column| column .group_by(&:itself) .sort_by { |k, v| v.count } .last[0] end.join puts "Part 1: #{part_1}" part_2 = columns.map do |column| column .group_by(&:itself) .sort_by { |k, v| v.count } .first[0] end.join puts "Part 2: #{part_2}"