2023. 5. 16. 02:44, 알고리즘/BOJ
#include <bits/stdc++.h>
using namespace std;
int n;
int a[1'000'005];
bool compare(const int &a, const int &b){
return a>b;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n;
for(int i=0; i<n; i++) cin>>a[i];
sort(a,a+n,compare);
for(int i=0; i<n; i++) cout<<a[i]<<'\n';
}
위의 코드처럼 기본적으로 sort()함수는 오름차순 정렬이기 때문에 내림차순으로 바꾸어 주기 위해서는 compare 함수를 넘겨주어야 한다.
이때 직접 compare 함수를 정의해서 넘겨줄 수 있다.
내림차순으로 정렬하기 위해서는
bool compare(const int &a, const int &b){
return a>b;
}
형태로 compare 함수를 작성해서 넘겨주면 된다.
이렇게 직접 구현하는것 말고도 기본적으로
https://itguava.tistory.com/67
greater<>()
les<>()
을 활용해서 compare 함수 부분을 채워줄 수 있다.
이때 greater<int>() 형으로 쓰는것이 명시적이겠으나
c++14 부터 타입추론이 가능해지면서 greater<>()형으로 작성해도 된다고 한다.
더욱 자세한 내용은 위의 블로그 글을 참고해보도록 하자.
내가 우선적으로 기억해야 할것은
greater<type>()을 compare 함수로 넘겨주자는 것만 기억하고 코딩테스트 문제에서 sort를 이용할때 내림차순을 구현하는데 활용하도록 하자.
'알고리즘 > BOJ' 카테고리의 다른 글
boj 10814번 문제를 풀며 만나게된, VLA를 사용한 코드와, 이 코드의 문제점과 개선사항. (0) | 2023.05.16 |
---|---|
boj 10814번 문제를 풀면서 만나게된 stl sort()의 stable과 unstable, 그리고 stl stable_sort()에 관하여. (0) | 2023.05.16 |
in-place sort에 관하여. 약간 말그대로의 해석 느낌. (0) | 2023.05.16 |
sort에서 stable sort에 관하여. (0) | 2023.05.16 |
c++ swap 함수를 사용해서 서로의 값 교환하기 . (0) | 2023.05.15 |
Comments, Trackbacks