[Programmers](ハイスコアKIT)ソート-H-Index


https://programmers.co.kr/learn/courses/30/lessons/42747
問題の説明
H-Indexは科学者の生産力と影響力を測定する指標である.ある科学者のh-indexを表すh値を求めたいです.ウィキペディア1によると、H-Indexの計算は以下の通り.
ある科学者が発表したn編の論文の中で、h編以上の論文を引用し、残りの論文がh次以下に引用された場合、hの最高価格はこの科学者のh-indexである.
ある科学者が論文を発表する引用回数の配列参照をパラメータとして与えた場合,その科学者のH−Indexを返すために解関数を記述してください.
せいげんじょうけん
科学者が発表した論文の数は1編以上1000編以下である.
論文引用回数は0回以上10000回以下である.
I/O例
citationsreturn[3, 0, 6, 1, 5]3
Solution
#include <string>
#include <vector>
#include <algorithm>

using namespace std;
bool comp(int a, int b){
    return a > b;
}
int solution(vector<int> citations) {
    int answer = 0;
    sort(citations.begin(), citations.end(), comp);
    if(!citations[0]) return 0;
    for(int i = 0; i < citations.size(); i++){
        if(citations[i] > i) answer++;
        else break;
    }
    return answer;
}
簡単です.まずは整然と降順に.その後にインデックスに格納される参照回数が現在のインデックスの値より大きい場合は、正解に1を加算できます.