[アルゴリズム]プログラマh-index

3879 ワード

H-index


ここで、曲線と直線との交点、すなわち、ある研究者が出版した論文の数と引用の数とが同じ点をh値と呼び、曲線下の総幅は、その研究者がこれまで出版してきたすべての論文のすべての引用数である.整理後、「ある研究者のhインデックス値がhである場合、この研究者の論文ではh編がh回以上引用された.「[2]」-ウィキペディア-
すなわちH-indexとは,ある学者を評価する際に,発表された論文数と引用された回数を計算することで評価を行い,評価指標となるH-indexである.
では、問題を見てみましょう.

質問元:プログラマ



上記のI/Oの例は次のとおりです.
ある科学者が発表した論文は5編あり、そのうち3編が3回引用されたことが確認された.
この時、その3つの論文はあの科学者のh-indexと見なすことができる.

に答える


引用文の並び:論文の本棚
citaions.lent+1:発表された論文の総数
i+1:本棚の論文ごとの本番号
参照配列内のパラメータ:参照ごとの回数
  • sortの降順で並べ替えます.多くの論文を引用するために、「1巻」index numを加える.
  • のソートで参照された回数と論文の番号(インデックスごとに+1)を比較します.
  • 論文の番号(index+1)は、引用された回数が同じまたは小さくなった瞬間に、直前の論文の番号(index+1)を返信する.
  • インプリメンテーション

    function solution(citations) {
        // sort로 citations배열을 내림차순으로 정렬을 한다.
        // for문으로 인덱스값 하나하나를 비교를 한다
        // index+1(발표된 논문의 수) <= 각 인자(인용된 횟수)
        // 리턴==>index+1
        
        let answer = 0;
        let length  = citations.length;
        
        citations.sort((a,b) => {
            return b - a
        })
        // console.log(citations)
        
        
        for(let i = 0; i < length; i++) {
            if(citations[i] >= i+1) {
                answer = i+1 
                // 6 >= 1 5,2 3,3 1,4
            }
        }
        
        return answer;   
    }

    終了時..。


    最近は人間関係もコードと同じような気がします.
    エンコーディング中にエラーが発生した瞬間、どこからエラーを探し始めるのか、エラーの箇所から段階的に解決すればよいのですが、この過程も容易ではなく、解決過程でまた問題が発生すれば取り返しのつかない道を歩むことになります.
    人間関係も同じようです.あの人と矛盾を解消して、昔のように仲良くしたいけど...何かが私の目を遮って、私を不正確な方向に導いたようだ.毎日すべて苦痛な日の継続です.