H-Index 자바스크립트

HyosikPark·2020년 11월 24일
0

알고리즘

목록 보기
37/72
나의 풀이
function solution(citations) {
    
    let thesis = [];
    // 받은 배열내의 최대값까지 h 경우의 수가 가능하다.
    for(let h =0; h<=Math.max(...citations); h++) { 
      	// 각논문이
            let above = 0; // h 이상 몇개 인용 됐는가
            let below = 0; // h 이하 몇개 인용 됐는가
        for(let j = 0; j<citations.length; j++) {
            if(below > h) break; // h보다 더 많이 인용되면 중지
            if(citations[j] >= h) above++; // h보다 더 많이 인용
            else if (citations[j] <= h) below++; // 나머지 논문이
          //더 적게 인용
        }
        //조건을 만족하는 h면 가능한 논문으로 저장
        if(above >= h && below <= h) thesis.push(h);
    } // 가능한 논문 중 최대값 반환.
    return Math.max(...thesis)
}

다른 사람의 코드
function solution(citations) {
     citations = citations.sort(sorting);
     var i = 0;
     while(i + 1 <= citations[i]){
         i++;
     }
     return i;


     function sorting(a, b){
         return b - a;
     }
}
심플하고 시간도 더 단축되지만 왜 이렇게 되는지 난 전혀 이해가 안된다.

0개의 댓글