개발공부/코딩테스트 연습문제

[프로그래머스] Level.2 H-Index (JAVA)

ku-na 2022. 2. 7. 13:49

문제 설명과 제한사항

풀이

import java.util.*;

class Solution {
    public int solution(int[] citations) {
        int answer = 0;
        Arrays.sort(citations);
        
        for(int i = 0; i < citations.length ; i++){
            int count = citations.length - i;
            if(citations[i] >= count) {
                answer = count;
                break;
            }
        }
        return answer;
    }
}

++

level.2 문제 중에선 쉬운 난이도의 문제 같다.

풀이는 처음으로 citations[i]의 값보다 큰 값들의 갯수가 citations[i]보다 커질때 값을 찾는 방식이었다.

예를 들면 [3, 0, 6, 1, 5] 를 정렬 -> [0, 1, 3, 5, 6]

일때 

i == 0 -> count = 5 - 0 = 5 

             0 >= 5 false

i == 1 -> count = 4

             1 >= 4 false

i == 2 -> count = 3

             3 >= 3 true

 

이때 count = citations[i] 보다 큰 값의 갯수.

그러므로 i ==0, 1 일때는 h번 이상 인용된 논문이 h편 이상이지만 최댓값이 아님.