본문 바로가기

컴퓨터/프로그래머스

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

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

 

프로그래머스

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

programmers.co.kr

1. 코드

import java.util.*;
class Solution {
    public int solution(int[] citations) {
        Arrays.sort(citations);
        int answer = 0;
        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(cnt >= i)
                answer = i;
        }
        return answer;
    }
}

2. 설명

우선 citations을 오름차순으로 정렬 후 0부터 가장 큰 수까지 반복하는데 이 수는 H-Index 값이 됩니다.

cnt를 이용하여 각 논문들을 h번 이상 인용했는지 확인 후 cnt의 값이 h번 이상 인용된 것을 확인하면 answer에 저장합니다.

3. 정리

  1. 문제가 조금 복잡하게 설명되었는데 간단하게 정리하면 h번 이상 인용된 것에서 최댓값을 도출하면 된다.
출처: 프로그래머스 코딩 테스트 연습, 
https://school.programmers.co.kr/learn/challenges