본문 바로가기

Algorithm/Programers - C++

[프로그래머스] 정렬 - H-Index / greater<>()

문제

 

풀이

#include <string>
#include <vector>
#include <algorithm> // sort
using namespace std;

int solution(vector<int> citations) {

    int Hindex = 0;
    sort(citations.begin(), citations.end());
    for(int i = 0; i<citations.size(); i++){
        if(citations.size()-i <= citations[i]){
            Hindex = citations.size()-i;
            break;
        }
    }
    return Hindex;
}

 

 

 

 


다른 사람 풀이

#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 (citations[i] < i + 1) {
            return i;
        }
    }

    return citations.size();
}

임시객체 greater<>()을 sort의 세번째 인자로 활용해 역순 정렬을 해주었다.

 greater<>() 는 #include <functional>에 정의되어있다. 

 

 

 

https://itguava.tistory.com/67

 

[C++ / STL] sort 함수를 활용한 오름차순 / 내림차순 정렬

blog post Sort 알고리즘 얼마전 현장 코딩 테스트에서 Sort 함수를 활용한 내림차순 정렬을 구현하려고 했는데 키워드가 생각이 안나서 써먹지 못한 경험이 있습니다. 결국은 직접 내림차순 정렬을

itguava.tistory.com