본문 바로가기
Java/알고리즘

H-Index

by 티코딩 2023. 10. 13.

문제를 얼핏봤을때 아ㅋㅋ쉽네 생각했는데 코드로 짜보려고하니깐 정말 힘들었다.

분명 잘만 생각해보면 코드는 쉬울거같은데 그 잘만 생각해보는게 너무나도 힘들었다.

결과적으로 h이상인게 h개일때, h의 최댓값을 구하면 되는데 한시간반동안 고전하다가 풀게되었다.

class Solution {
    public int solution(int[] citations) {
        Arrays.sort(citations);
        
        int n = citations.length;
        for (int i = 0; i < n; i++) {
            int h = n - i;
            
            // h번 이상 인용된 논문이 h편 이상인 경우, h-index를 반환
            if (citations[i] >= h) {
                return h;
            }
        }
        
        // h-index를 찾을 수 없는 경우, 0을 반환
        return 0;
    }
}

먼저 Arrays.sort()를 통해 citations 배열을 오름차순 정렬을해준다.

int h는 n-i를 해주고, 

if문에서 citations[i]가 h이상일때, citations[i]이상인 논문은 h이상 존재한다.(오름차순이기 때문에)

그렇게 return h 를 해준다.

'Java > 알고리즘' 카테고리의 다른 글

기능개발  (0) 2023.10.17
괄호 회전하기  (0) 2023.10.16
숫자의 표현  (0) 2023.10.12
영어 끝말잇기  (0) 2023.10.11
올바른 괄호  (0) 2023.10.11