프로그래머스 H-Index C++

2023. 10. 19. 15:21알고리즘

이 문제는 이해하기가 어려운 문제였다. 코드는 간단하다.

 

문제에서 나온 예시를 정렬하면 

0,1, 3, 5, 6이 된다. 

이 때 인덱스 번호는 자신 이상으로 인용된 횟수를 확인할 수 있다.

 

가령 6의 경우 인덱스 번호는 1이고 (역으로 정렬했다)

따라서 자신 이상으로 인용된 횟수는 1회이다.

 

디버깅 케이스는 10, 20, 30과 같은 경우이다. 이 때 10회이상 인용이 되었지만 쓴 논문이 3편이기 때문에 h index의 최대값은 3편에 지나지 않는다. 이에 유의해서 풀면 된다.

 

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> citations) {
    int answer = 0;
    sort(citations.begin(), citations.end(), greater<int> ());
    for (int i=0;i<citations.size();i++){
        if (citations[i]>=i+1){
            answer = i+1;
        }
    }
    return answer;
}