본문 바로가기

머리맞대는이야기/프로그래머스 (JAVA)

[정렬] H-index

반응형

출처: programmers.co.kr/learn/courses/30/lessons/42747

 

코딩테스트 연습 - H-Index

H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표

programmers.co.kr

 

풀이과정

정렬해서 가운데 있는 숫자 고르기?

아니다, 주어지는 배열에 중복되는 숫자도 있을 것이다.


import java.util.*;
class Solution {
    public int solution(int[] citations) {
        int answer = 0;
		ArrayList<Integer> arrList = new ArrayList<>();
		for (int i = 0; i < citations.length; i++)
			arrList.add(citations[i]);
		Collections.sort(arrList);
		
		for(int i = 0; i<arrList.size();i++) {
			int h = arrList.size() -i;
			
			if(h<=arrList.get(i)) {
				answer = h;
				break;
			}
		}
        return answer;
    }
}

 

memo

일단 h는 최대 논문 갯수보다 클 수 없다.

 

정렬을 해준 다음에 

h를 큰 수 부터 차감하면서 따져보면 된다.

그리고 한번 논문인용수와 더 커지거나 같아질때 그게 최댓값이면서 답이된다.

반응형