문제
풀이
#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
'Algorithm > Programers - C++' 카테고리의 다른 글
[프로그래머스] 완전탐색 - 모음사전 / 중복순열 (0) | 2022.11.12 |
---|---|
[프로그래머스] 완전탐색 - 카펫 (0) | 2022.10.30 |
[프로그래머스]스택 큐 - 다리를 지나는 트럭 (0) | 2022.10.22 |
[프로그래머스] n^2 배열 자르기 (0) | 2022.10.09 |
[프로그래머스] 완전탐색 - 피로도 (0) | 2022.10.09 |