코딩테스트/프로그래머스
[Level 2][C++] H-Index
MJ.Lee
2024. 10. 1. 12:49
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> citations) {
sort(citations.begin(), citations.end(), greater<int>());
for(int i=0; i<citations.size(); i++)
{
if(i+1 > citations[i])
return i;
if(i+1 == citations[i])
return i+1;
}
}
맨 끝에서 부터 논문 수를 센다. 논문 수([i+1])>=논문 인용수(citations[i])면 return citations[i]로 문제가 풀릴 줄 알았으나.... 다 틀렸다. 왜 틀렸나 생각해보니 {1,2,3,5,6,7,8}로 눈문이 7편이 있다면.. 3이 아니라 인용은 4가 되여야 할 것이다. 그래서 위와 같이 코드를 수정하니 풀렸다.