#! /usr/bin/env ruby # https://repl.it/@sdrew/FogCreek-Application-Problem-Ruby dict = ('a'..'z').to_a.tap { |arr| arr << '_' }.inject({}) { |memo, char| memo[char] = 0; memo } data = File.read(File.join(__dir__, "data.txt")) # METHOD A # data.each_char do |char| # next if dict[char].nil? # # dict[char] += 1 # end # METHOD B dict.keys.each { |char| dict[char] = data.count(char) } sorted = dict.to_a.sort { |a, b| b[1] <=> a[1] }.inject([]) { |memo, arr| memo << arr.first; memo } word = sorted.join('').split('_').first puts word