ハッシュ要素のバリューが一番高いものを全て出力したいですが、
バリュー値の取得がわからないため、教えていただきたいです。追記↓
以下の例で言えば9,1だけを1行おきかつ低い順にするという条件です。
rb
1ary = [] 2count = Hash.new(0) 3while tmp = gets 4 break if tmp.to_i == 0 5 ary << tmp.to_i 6end 7 8ary.each do |ary_i| 9 count[ary_i] += 1 10end 11 12p count.sort{| (_,v1),(_,v2) | v2 <=> v1}.to_h 13 14# 9 15# 9 16# 3 17# 1 18# 1 19# 7 20# 21# {9=>2, 1=>2, 7=>1, 3=>1}
追記
max_byをしようした上でsortをしようすると、sortメソッドにmax_byが上書きされてしまいます。
rb
1ary = [] 2count = Hash.new(0) 3while tmp = gets 4 break if tmp.to_i == 0 5 ary << tmp.to_i 6end 7 8ary.each do |ary_i| 9 count[ary_i] += 1 10end 11 12p count.sort{| (_,v1),(_,v2) | v2 <=> v1}.to_h 13 14count.max_by{|_,v| v}.each do |max_by_i| 15 puts max_by_i 16end 17 18# 1 19# 1 20# 9 21# 9 22# 2 23# 3 24# 25# 4 26# 27# {1=>2, 9=>2, 2=>1, 3=>1, 4=>1} 28# 1 29# 2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/08 12:23