https://programmers.co.kr/learn/courses/30/lessons/42747
citations
벡터를 내림차순 정렬하면 다음과 같다.
citations[i]
회 이상 인용한 논문의 개수는 최대 i+1
편 이상일 수 밖에 없다.
따라서 h
는 i+1
이 된다.
이때 citations[i]
<i+1
이면, 더 이상 h
를 증가시킬 수 없고 작아지기만 하므로 멈추면 된다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> citations) {
int answer = 0;
sort(citations.begin(),citations.end());
reverse(citations.begin(),citations.end()); //내림차순
int i;
for(i=0;i<citations.size();i++){
// citations[i] 회 이상 인용, (i+1)편 -> h:i+1!
// citations[i] < (i+1) 이면 더 h는 더 이상 늘어날 수 없음
if(citations[i]<(i+1)){
break;
}
}
answer=i;
return answer;
}