input = [{:name => "Kutty", :score => 2, :some_key => 'value'},
         {:name => "Kutty", :score => 4, :some_key => 'value'},
         {:name => "Baba",  :score => 5, :some_key => 'value'}]

output = input.group_by { |x| x[:name] }
              .map {|x,y|y.max_by {|x|x[:score]}}

puts output