해설
문제에는 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index 라고 나와있지만, 이걸 그대로 해석해서 풀면 삽질하기 쉽다.
문제에 나와있는 H-index 정의 대신 아래 글을 참고하자.
요약하면,
H-index는 논문 인용 수를 내림차순으로 나열한후, 논문의 인용 수가 논문 수보다 클 때 논문 수의 최댓값을 의미한다.
citations을 내림차순으로 정렬한 후, citations[i-1] > i 일 때 i의 최댓값을 구하면 정답이다.
+) 틀린 케이스를 넣어도 정답으로 처리되는 것을 보면 테스트 케이스가 약한 듯 싶다.
코드
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <tuple>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>
#include <cctype>
#include <iostream>
using namespace std;
using ii = pair<int, int>;
using iii = tuple<int, int, int>;
#define X first
#define Y second
int solution(vector<int> citations) {
sort(citations.begin(), citations.end(), greater<>());
int ans = 0;
for (int i=1; i<=citations.size(); i++)
if (citations[i-1] > i) ans++;
return ans;
}
'대딩 > 프로그래머스풀이' 카테고리의 다른 글
[프로그래머스 lv2] 올바른 괄호 풀이 (0) | 2022.08.16 |
---|---|
[프로그래머스 lv2] 땅따먹기 풀이 (0) | 2022.08.16 |
[프로그래머스 lv2] 가장 큰 수 풀이 (0) | 2022.08.16 |
[프로그래머스 lv2] 카펫 풀이 (0) | 2022.08.15 |
[프로그래머스 lv2] 이진 변환 반복하기 풀이 (0) | 2022.08.14 |
댓글