最大から最小に事前に並べ替えられたスコア(非負の整数)のリストがある場合:
[ 10, 10, 6, 6, 4, 0]
各スコアに1から昇順の整数ランクを割り当てます。これにより、等しいスコアが同じランクになります(つまり、同順位になります)。
[ 1, 1, 3, 3, 5, 6 ]
同順位の場合、ランクは「スキップ」されます。たとえば、1番目と2番目に大きいスコア(10と10)は同数であるため、どちらもランク1であり、ランク2は「スキップ」されているため、3番目に大きいスコア( 6)はランク3です。
入力スコアに対応する降順でないランクのリストを出力します。
例
In: 10 10 6 6 4 0
Out: 1 1 3 3 5 6
In: 10 9 8
Out: 1 2 3
In: 0 0 0
Out: 1 1 1
In: 16 15 15 12 11 11 10 9 9 9 8 2 2 2 0
Out: 1 2 2 4 5 5 7 8 8 8 11 12 12 12 15
入力
すべてのスコアが0〜1,000であり、入力のスコアは500以下であると想定します。入力は、選択した言語に適した形式にすることができます(STDIN、関数の引数、変数に既に格納されている配列などを含みますが、これらに限定されません)。
出力
戻り値または変数に格納ランクの結果順序付きリスト、または人間が読める形でSTDOUTに書き込む(例えば1 2 3、[1,2,3]、1\n2\n3\n、および{ 1, 2, 3 }すべての罰金です。123区切り文字の希望のために、ではありません)。入力スコアは、対応する出力ランクとともに保存/印刷できますが、必須ではありません。
制限事項
言語が提供する標準ライブラリを使用できます。標準の抜け穴が適用されます。
勝利条件
これはcode-golfなので、最小のプログラム(バイト単位)が優先されます。同数の場合、投票数が最も多い回答が優先されます。
ノート
これは、SOに関するRubyの質問に基づいており、非常に短いものも含め、いくつかの興味深い回答が生成されました。そこを見る前に、独自のソリューションを考え出すことをお勧めします。