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

이영재·2025년 1월 16일

알고리즘

목록 보기
1/4
post-thumbnail

문제

문제 요약

  • H-Index란?
    • 과학자가 발표한 논문 중 h번 이상 인용된 논문이 h편 이상이고, 나머지 논문이 h번 이하 인용되었다면, 이때의 h의 최댓값이 H-Index

입출력 분석

citationsreturn
[3, 0, 6, 1, 5]3

제한 사항

  • 논문 수는 1편 이상, 1,000편 이하.
  • 논문별 인용 횟수는 0회 이상, 10,000회 이하.

설계

  1. 정렬을 사용해서 인용 횟수를 오름차순으로 정리해 인용된 논문의 수를 쉽게 관리한다.
    • 만약 정렬하지 않았다면, 모든 값을 하나씩 조건에 맞게 확인해야 하므로 복잡도가 상당함
  2. 정렬 후 논문의 인용 횟수를 작은 값부터 확인
    • 조건을 만족하는 순간 바로 결과를 반환

해결

import java.util.Arrays;
class Solution {
    public int solution(int[] citations) {
        Arrays.sort(citations);
        int answer = citations.length;
        
        for(int c: citations){
            if(c >= answer){
                break;
            }else{
                answer -= 1;
            }
        }
        return answer;
    }
}

0개의 댓글