配列をユニークにしてその個数とともに返せ - rubyco(るびこ)の日記経由で知った、面白そうな問題。 配列をユニークにしてその個数とともに返せ。 具体的には、["foo", "bar", "foo", "baz", "bar", "foo"] を、[ ["foo", 3], ["bar", 2], ["baz", 1] ] にする。 golf - babie, you're my home 結城さん(rubycoさんの中の人)が出力結果で配列の文字列の出現順にこだわってたのを見て(目的が「タグクラウドで文字の大きさ変える」ためらしいので、こだわる必要はないのだけど)、ハッシュを使わないアルゴリズムの方が良いんじゃないかと思ったので、直接配列を組み立てる方針の回答を考えてみた。 まずは、単純に考えてみると、こんな感じになった。 a = ["foo", "bar", "foo", "baz