less than 1 minute read

275. H-Index II / c++ / Medium / 4분

문제 및 코드

#include <algorithm>
class Solution {
public:
    int hIndex(vector<int>& citations) {
        sort(citations.begin(), citations.end());

        for (int i = 0; i < citations.size(); ++i)
        {
            if (citations.size() - i <= citations[i])
            {
                return citations.size() - i;
            }
        }

        return 0;
    }
};

접근 방식

배열 / 정렬

  1. H-Index는 h번 이상 인용된 논문이 h개 이상일 때의 최대값이다.
  2. 우선 배열을 정렬한뒤, 순회한다.
  3. 순회하면서 현재 남은 논문 갯수 (citations.size()-i)보다 현재 논문의 인용 횟수(citations[i])가 크거나 같다면, H-Index는 는 남은 논문의 갯수이므로 그것을 반환한다.

생각해 볼 점

  1. H-Index는 백준에서 이미 풀어본 경험이 있는 문제여서 쉽게 풀 수 있었다.
  2. 백준에서 처음 이 문제를 접했을 때는 최대값 범위를 어떻게 잡아야하고 어떻게 접근할지 감이 잘 안왔었는데, 그 때 제대로 이해하고 넘어가니 다음에 다시 이 문제가 나왔을 때, 쉽게 다시 풀 수 있었던 것 같다.
  3. h-index는 결국 논문의 개수로 제한되니 최대값은 최대 논문의 개수이다.

해시태그

#99클럽 #코딩테스트 준비 #개발자 취업 #항해99 #TIL