반응형

 

[광고 누르면 오늘의 행운 상승!!]

https://programmers.co.kr/learn/courses/30/lessons/42747

 

코딩테스트 연습 - H-Index

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

programmers.co.kr

굉장히 쉬운 문제인데

왜 sort가 필요한지는 모르겠다.

어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고
나머지 논문이 h번 이하 인용되었다면 
h의 최댓값이 이 과학자의 H-Index입니다.

1. 구현

- sort를 이용하여 가장 높은 값을 찾았다.
- 가장 높은 값까지 돌리면서 h번 이상 인용된 논문을 찾았고
- 나머지는 배열.length-cnt를 해주어 h편이상 h번이하인 값을 최댓값으로 갱신하였다.

import java.util.*;
import java.io.*;


class Solution {

    public int solution(int[] citations) {
        int answer = 0;
        
        Arrays.sort(citations);
        for(int i = 0; i< citations[citations.length-1]; i++){ 
            int cnt = 0;
            for(int j = 0; j< citations.length; j++){ 
                if(i <= citations[j]) cnt++;
            }
            if(i <= cnt && i >= citations.length-cnt)
                answer = Math.max(answer,i);
        }
        return answer;
    }
}
반응형

+ Recent posts