RosettaCodeData/Task/Ranking-methods/Ruby/ranking-methods.rb

22 lines
502 B
Ruby
Raw Permalink Normal View History

2015-02-20 09:02:09 -05:00
ar = "44 Solomon
42 Jason
42 Errol
41 Garry
41 Bernard
41 Barry
39 Stephen".lines.map{|line| line.split}
2016-12-05 22:15:40 +01:00
grouped = ar.group_by{|pair| pair.shift.to_i}
2015-02-20 09:02:09 -05:00
s_rnk = 1
2016-12-05 22:15:40 +01:00
m_rnk = o_rnk = 0
2015-02-20 09:02:09 -05:00
puts "stand.\tmod.\tdense\tord.\tfract."
2016-12-05 22:15:40 +01:00
grouped.each.with_index(1) do |(score, names), d_rnk|
2015-02-20 09:02:09 -05:00
m_rnk += names.flatten!.size
f_rnk = (s_rnk + m_rnk)/2.0
names.each do |name|
o_rnk += 1
2016-12-05 22:15:40 +01:00
puts "#{s_rnk}\t#{m_rnk}\t#{d_rnk}\t#{o_rnk}\t#{f_rnk.to_s.sub(".0","")}\t#{score} #{name}"
2015-02-20 09:02:09 -05:00
end
s_rnk += names.size
end