본문 바로가기
코딩일기/알고리즘

[프로그래머스 : 레벨 2] H-Index : 문제 설명 (Java)

by 욱파이어니어 2021. 6. 4.
728x90
반응형

이번 문제는 진짜 문제를 이해하는데 많은 시간이 들었다.

문제가 뭔소린지 모르니 문제를 풀줄도 몰랐다. 그래서 풀이를 봤지만 풀이를 봐도 이해를 할수가 없었다.

 

내가 이해가 바로 갔던 사이트는 아래 사이트였다.

https://www.ibric.org/myboard/read.php?Board=news&id=270333 

 

[연구논문을 위한 핵심 10단계] H-지수(H-Index) 란 무엇인가?

일반적으로 특정 연구원의 연구성과를 평가하기 위해 얼마나 많은 논문을 발표 하였는지를 보게됩니다. 그러나 단순히 발표한 논문 수로만 그 연구원의 연구 업적을 평가 하기에는 발표한 논문

www.ibric.org

 

위 사이트에서 보고 내가 이해한 것은 아래와 같다. 

 

h-index를 구하는 이유는 논문 쓴 사람의 논문의 영향력? 같은걸 확인하기 위해서이다.
그걸 알려면 일단 내가 쓴 논문들을 인용수를 제일 큰수부터 나열해야한다.
그럼 나의 인용수에 따른 논문들이 몇편인지 나올텐데 거기서 인용수와 해당 논문에 따른 나의 논문 편수가 같아지면
그게 h-index가 되는것이다.

 

따라서 논문수도 많고 인용수도 많아지게 되면 h-index가 커지기 때문에 h-index가 크면 권위있는 학자나 단체로 볼수 있다.

 

그럼 이제 소스를 보자.

 

import java.util.*;
class Solution {
    public int solution(int[] citations) {
        int answer = 0;

        //오름차순으로 정렬
        Arrays.sort(citations);
        int len = citations.length;
        for(int i = len; i>0;i--){
            if(citations[len-i] >= i ){
                answer = i;
                break;
            }
        }

        return answer;

    }
}

 

일단 인용수를 오름차순으로 정렬했고 그다음엔 

index가 인용수보다 커질때 index를 answer에 넣고 break하게 하였다.

 

참조 사이트 : https://blog.naver.com/hyoun1202/222114539364

 

프로그래머스 "코딩테스트 연습>정렬>H-Index" 문제풀이

이 문제는 일단 문제 자체를 이해하는것 부터가 어렵습니다. 문제 설명란에 링크되어 있는 '위키백과&...

blog.naver.com

 

느낀점

 

1. 문제가 뭘 원하는지 알자.

2. 규칙을 찾아보려고 해보자.

3. 모를땐 주변분들에게 여쭤보자.

 

반응형