[プログラマー]H-index


https://programmers.co.kr/learn/courses/30/lessons/42747

に答える


問題で述べた内容を符号化に変換することは困難である.
「h回以上引用した論文はh編以上,残りの論文はh回以下引用」をコードに変換すれば実現できる問題である.参照を昇順に並べ替えた後、問題を開始します.
問題をコードに書くと、
参照されたh番目の要素が参照された[h]回である場合、h+1以降の参照要素が存在するhの最大値を探し出す.
はい.
参照の長さがlengthと呼ばれる場合、参照は昇順にソートされ、参照[i]の値がlength-i以上であればよい.このときlength-iは最大hとなる.
ソートが完了したため、iの2番目の値がlength-i以上である場合、i+1からlength-1までのすべての参照値はlength-i以上になります.よって、0から、iからチェックすれば良いのです.

コード#コード#

def solution(citations):
    answer = 0
    citations.sort()
    
    length = len(citations)
    
    for i in range(length):
        if citations[i]  >= length - i:
            return length - i

            
    return answer
https://github.com/naem1023/codingTest/blob/master/sort/pg-30-42747.py