
처음에는 아래와 같은 조건문을 가지고 걸렀다가,
이렇게 하면 citations안의 요소가 아닌 숫자는 답이 될 수 없음을 깨달았다.
if (citations[i] > n) continue;
if (citations[citations[i] - 1] == citations[i]) {
answer = citations[i];
break;
}
내림차순 정렬된 citations를 돌며,
인용수가 해당 인덱스값보다 크다면 h값을 인덱스값으로 갱신하길 반복한다.
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> citations) {
sort(citations.begin(), citations.end(), greater<int>());
int n = citations.size();
int answer = 0;
for (int i = 0; i < n; i++) {
if (citations[i] >= i + 1) {
answer = i + 1;
}
else break;
}
return answer;
}
