Programmers_sort_H-Index

1349 ワード

[Sort] H-Index


Link: https://programmers.co.kr/learn/courses/30/lessons/42747?language=python3

問題の説明


H-Indexは科学者の生産力と影響力を測定する指標である.ある科学者のh-indexを表すh値を求めたいです.ウィキペディア1によると、H-Indexの計算は以下の通り.
ある科学者が発表したn編の論文の中で、h編以上の論文を引用し、残りの論文がh次以下に引用された場合、hの最高価格はこの科学者のh-indexである.
ある科学者が論文を発表する引用回数の配列参照をパラメータとして与えた場合,その科学者のH−Indexを返すために解関数を記述してください.

せいげんじょうけん

  • 科学者が発表した論文の数は1編以上1000編以下である.
  • 論文の引用回数は0回以上10000回以下である.
  • I/O例


    citations return
    [3, 0, 6, 1, 5] 3

    I/O例説明


    この科学者が発表した論文は5編あり、そのうち3編は3回以上引用された.また、残りの2つの論文は3回以下引用されたので、この科学者のh-indexは3である.

    Code

    def solution(citations):
    
        citations.sort()
        for i in range(0,len(citations)):
            if citations[i] >= len(citations)-i:
                return len(citations)-i
        return 0
    
    solution([3, 0, 6, 1, 5])

    コード解析

  • 並べ替えにより[0,1,3,5,6]のリストが生成される.
  • の最初のインデックスから、[0]番のインデックスの値が1以上であるかどうかを確認します.
  • の順序で[1]のインデックスが2より大きいかどうか、[2]のインデックスが3より大きいかどうかをチェックし、値が以上であれば結果値を返します.
  • 何もなければ0を返してください.
  • Output / Screen Shot