출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42747#
풀이 방법
H-Index는 특정 과학자가 발표한 논문 중, h번 이상 인용된 논문이 h 편 이상이고, 나머지 논문들은 h번 이하로 인용된 경우, 이 h의 최댓값을 의미한다.
H-Index의 중요한 핵심은 ‘인용 횟수’보다는 ‘인용된 논문의 수’에 중점을 둔다는 점이다.
논문을 정렬 후 인덱스와 비교하면 된다.
예를 들어, [1, 5, 5, 5, 5]의 정답은 4이다. 그러므로 인덱스를 하나씩 올려가며 현재의 인덱스가 인용된 수보다 크다면 해당 인덱스를 H-Index로 설정하면 된다.
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int solution(vector<int> citations) {
int answer = 0;
sort(citations.begin(), citations.end());
int n = citations.size();
for (int i = 0;i < citations.size();i++) {
int H_index = n - i;
if (citations[i] >= H_index) return H_index;
}
return answer;
}
'Algorithm' 카테고리의 다른 글
[백준] 미로만들기 2662번 (c++) bfs, 우선순위 큐 (0) | 2024.09.23 |
---|---|
[백준] 감시 15683번 (c++) 구현, 배열 선언 위치의 중요성 (0) | 2024.09.22 |
[백준] 빗물 14719번 (c++) 구현 (0) | 2024.09.20 |
[백준] 카드 정리 1 1101번 (c++) 구현 (0) | 2024.09.20 |
[백준] 1학년 5557번 (c++) dp (0) | 2024.09.19 |