[PGS] H-Index - JAVA

최영환·2023년 8월 8일
0

Programmers

목록 보기
20/43

💡 문제


💬 입출력 예시

📌 풀이(소스코드)

import java.util.*;

class Solution {
    public int solution(int[] citations) {
        int answer = 0;
        Arrays.sort(citations);

        int length = citations.length;
        for (int i = 0; i < length; i++) {
            int h = length - i;

            if (citations[i] >= h) {
                answer = h;
                return answer;
            }
        }
        return answer;
    }
}

📄 해설

접근

  • 문제 설명이 애매하게 되어있어 한참을 헤맨 문제. 결국 다른 블로그의 문제 설명을 읽고서 풀 수 있었다.
  • 배열을 우선적으로 정렬해주고, 인용횟수 배열 요소 값을 차례로 h 로 지정하며 H-Index 조건을 만족하는지 확인해준다.

과정

  • citations 배열을 먼저 오름차순으로 정렬해준다. (h 이상인 개수를 구해야하므로)
  • 정렬된 ciatations 배열에 대해, (해당 요소의 논문 인용 횟수 >= h회 이상 인용된 논문 개수) 조건을 만족할 경우, 해당 요소에서 h회 이상 인용된 논문 개수가 H-Index 가 된다.
  • 이 조건을 만족하는 그 순간이 H-Index 의 최댓값이다. 이후로는 무조건 h 의 값이 작아지므로 반복을 종료한다.

H-Index 결정 과정에 대한 자세한 설명

다른 블로그에 정리가 잘 된 것이 있어, 가져와봤다.

출처 : https://bada744.tistory.com/94

profile
조금 느릴게요~

2개의 댓글

comment-user-thumbnail
2023년 8월 8일

큰 도움이 되었습니다, 감사합니다.

1개의 답글