class Array
def sort_by_larger
self.group_by{|i| i}
.map{|k,v| [k,v.size]}
.sort{|a,b| (b[1] <=> a[1]) * 2 + (a[0] <=> b[0])}
.map{|a| a[0]}
end
end
p [1,2,3,3,3,3,3,4,4,5,5,5].sort_by_larger
#=> [3, 5, 4, 1, 2]
他になんかいい方法とかより良いメソッド名があったら教えてくださひ
hanachin++ https://gist.github.com/2928908