[プログラマー/Python]ソートH Index



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

アルゴリズム分類

  • ソート
  • 問題を解く


    まずH Indexアルゴリズムを理解する必要がある.
    たとえばarray=[10,8,5,4,3]の場合、インデックスは[1,2,3,4,5]になります.10>=1,8>=2,5>=3,4>=4,3>=5(成立x)では,H Index値がその条件を満たす最大インデックス値である.(4)
    このため、降順でソートして条件を満たすと、結果リストに追加され、最後に追加された値が最大インデックス値であるため、ポップアップされます.
    *array=[0,0,0]では、満足のいく答えは0でなければなりません.したがって、デフォルトの結果は0です.

    ソースコード

    def solution(citations):
        
        citations.sort(reverse=True)
    
        result=[0]
        for i in range(1,len(citations)+1):
            if i<=citations[i-1]:
                result.append(i)
    
        return result.pop()