[프로그래머스 -LEVEL2] - H-Index

이동찬·2022년 1월 27일
0

프로그래머스

목록 보기
14/28
post-thumbnail

링크

H-Index

문제 설명

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

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

어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요.

제한사항

  • 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다.
  • 논문별 인용 횟수는 0회 이상 10,000회 이하입니다.

풀이

처음 문제를 풀 때, h번 이상, h번 이하 이부분을 잘 못 이해해서 계속 틀리게 나왔었다. 하지만 문제를 제대로 읽어보니 이상, 이하를 눈여겨보며 다시 문제를 풀기 시작했다. 그래서 정렬을 한 다음, h를 인덱스+1로 잡아주었고 말그대로 문제처럼 알고리즘을 풀어주며 쉽게 풀 수 있었다.

Code

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 h=i+1;
            int up=0;
            int down=0;
            for(int j=0; j<citations.length; j++)
            {
                if(h <= citations[j])
                    down++;
                
                if(h>=citations[j])
                    up++;   
            }
            if(h>=up && h<=down)
                answer=i+1;
        }
        return answer;
    }
}

0개의 댓글

관련 채용 정보