프로그래머스 알고리즘/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
반응형