[C++] 프로그래머스 H-Index

멋진감자·2025년 4월 11일

알고리즘

목록 보기
120/127
post-thumbnail

🌽 문제

🥔 풀이

처음에는 아래와 같은 조건문을 가지고 걸렀다가,
이렇게 하면 citations안의 요소가 아닌 숫자는 답이 될 수 없음을 깨달았다.

if (citations[i] > n) continue;
if (citations[citations[i] - 1] == citations[i]) {
    answer = citations[i];
    break;
}

내림차순 정렬된 citations를 돌며,
인용수가 해당 인덱스값보다 크다면 h값을 인덱스값으로 갱신하길 반복한다.

🥬 코드

#include <algorithm>
#include <string>
#include <vector>

using namespace std;

int solution(vector<int> citations) {
    sort(citations.begin(), citations.end(), greater<int>());
    
    int n = citations.size();
    int answer = 0;
    for (int i = 0; i < n; i++) {
        if (citations[i] >= i + 1) {
            answer = i + 1;
        }
        else break;
    }
    
    return answer;
}

🥜 채점

profile
난멋져

0개의 댓글