프로그래머스

[프로그래머스 Level 2] H-Index [Java]

거북이같은곰 2022. 9. 29. 20:44

 

 


https://school.programmers.co.kr/learn/courses/30/lessons/42747/solution_groups?language=java 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

※. h는 n이하이다. (h <= n)

 

※. 답이 citations의 원소가 아닐 수도 있다.

[0,3,5,5,5,6]

 

※.배열의 원소(h번 이상 인용된 논문)와 배열의 길이-i(h번 이상 쓴 논문의 수) 중 작은걸 찾는다.

1.배열의 원소가 작을 때 : (배열의 원소)이상 인용된 논문이 (배열의 원소)이상 있다.

2.배열의 길이-i가 작을 때 : (길이-i)이상 인용된 논문이 (길이-i)이상 있다.

(2번일 때 원소가 아닌 값 중에서 가장 큰 값을 찾을 수 있다. n~1만큼 탐색)

 

이 중 가장 큰 값을 찾으면 된다.

 


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 min = Math.min(citations[i], citations.length-i);
            answer = Math.max(min, answer);
        }
        return answer;
    }
}