코딩테스트/프로그래머스

[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가 되여야 할 것이다. 그래서 위와 같이 코드를 수정하니 풀렸다.