[프로그래머스] H-Index

Kwon·2024년 5월 27일

알고리즘

목록 보기
4/10
post-thumbnail

H-Index

문제

풀이

이번 문제를 보면서 느낀 것은 문제 해석 능력을 길러야 할 필요가 있다고 생각했다. 문제의 핵심 부분은 '어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index' 인데, 여기서 h라는 기준이 어떻게 되는건지 너무 애매했다. 문제만 이해하면 알고리즘은 쉽게 해결할 수 있었다.

이런 느낌으로 다가 citations 길이를 h에 대입하고 처음부터 하나 씩 -1 하면서 해당 citations에 들어있는 index 값을 비교해 정답을 찾으면 된다.
문제 이해가 너무 어렵다면, 예제를 보고 이해를 하는 것도 하나의 방법이다. (하지만 어려움....)

결국 citations를 Arrays.sort(논문) 을 사용 후, h값 기준으로 논문 하나 씩 조건에 맞는 인용 수의 값을 찾으면 되는 문제였다.

코드

import java.util.Arrays;

class Solution {
    public int solution(int[] citations) {
        int answer = 0;
        Arrays.sort(citations);
        for (int i = 0; i < citations.length; i++) {
            int tmp =  citations.length - i;
            if (citations[i] >= tmp) {
                answer = tmp;
                break;
            }
        }
        return answer;
    }
}
profile
📲 @bu_kwon_2 / 💻 dnu05043.log / ⌨ Back-end / 🦁 LikeLion

0개의 댓글