< 문제링크 >
https://www.welcomekakao.com/learn/courses/30/lessons/42747
< 풀이 >
1. 먼저 논문 인용수를 내림차순으로 정렬한다.
2. 해당 인덱스보다 논문 인용수가 같거나 작아지는 지점이 생기면 그 때의 인덱스가 H-index가 된다.
-> 만약, 그 지점이 없다면 논문의 수가 H-index가 된다.
< 코드 >
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(int a, int b)
{
return a > b;
}
int solution(vector<int> citations) {
int answer = 0;
// 내림차순 정렬
sort(citations.begin(), citations.end(), cmp);
for (int i = 0; i < citations.size(); i++) {
// 인덱스보다 인용수가 같거나 작아지는 시점이 h-index 이다.
if (i >= citations[i]) return i;
}
// 끝까지 가도 작아지는 지점이 없다면 논문의 수가 h-index 이다.
return citations.size();
}
'알고리즘 > Programmers' 카테고리의 다른 글
Programmers / 완전탐색 / 소수 판별 (0) | 2020.09.08 |
---|---|
Programmers / 완전탐색 / 모의고사 (0) | 2020.09.08 |
Programmers / Sort / 가장 큰 수 (0) | 2020.09.07 |
Programmers / Sort / K번째수 (0) | 2020.09.06 |
Programmers / Stack, Queue / 프린터 (0) | 2020.09.06 |