N

(프로그래머스 c++)H-Index 본문

프로그래머스 알고리즘/2단계

(프로그래머스 c++)H-Index

naeunchan 2020. 5. 14. 14:49
728x90
반응형

정렬을 활용하여 문제를 푸는 방식이다..!

우선 sort()함수를 사용하여 오름차순으로 정렬을 해준다.

그리고 H-Index를 찾기 위해 count 변수를 선언하여 1을 저장.

 

이제 H-Index를 citations 벡터 안에서 찾으면 된다..!

u는 h번 이상 사용한 횟수, d는 h번 이하 사용한 횟수를 나타낸다.

citations를 돌면서 count 이상이면 u++, count 미만이면 d++을 한다.

 

그리고 u >= count && d < count && answer < count 이면

answer = count 로 하여 answer 값을 최댓값으로 만들어주면 된다..!

 

여기서 이상한 문제점은 문제 설명에서는 h번 이상, h번 이하라고 하였는데,

예시를 보면 h번 이상, h번 미만으로 나와있어서..!

헷갈릴 수도 있을 법한 문제였다..!

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

using namespace std;

int solution(vector<int> citations) {
    int answer = 0, count = 1;
    sort(citations.begin(), citations.end());
    
    for(int i = 0; i < citations.size(); i++)
    {
        int u = 0, d = 0;
        for(int j = 0; j < citations.size(); j++)
        {
            if(citations[j] >= count)
                u++;
            else
                d++;
        }
        if(u >= count && d < count && answer < count)
            answer = count;
        count++;
    }
    
    return answer;
}
728x90
반응형