https://www.acmicpc.net/problem/11931
문제 해석
숫자 배열을 입력받은 후 내림차순으로 정리 하여 출력해주는 문제이다.
코드
#include <iostream>
#include <algorithm>
using namespace std;
int a[100000];
int n;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
sort(a, a + n, greater<int>());
for (int i = 0; i < n; i++)
cout << a[i] << '\n';
}
문제 풀이
보통 sort 함수를 사용하면, 기본적으로 오름차순으로 정렬된다. 그치만 이 11931번 문제 같은 경우는 내림차순으로 정렬해줘야 한다. 그럴 경우엔 큰 숫자 들부터 나열해줘서 return 값으로 반환 해주는 boolean 함수를 하나 생성하여 sort 함수 안에 선언하여 준다. 예를들어서 비교해줄 두 수 를 a와 b로 받아오고 return a>b; 로 큰 수 부터 나열 되게끔 반환하여 준다. 그런 후 main 함수 안에 sort를 선언 할때 (배열.first(), 배열.end(), 만든boolean 함수) 이런식으로 선언하여 준 후 for 문 으로 배열을 하나씩 출력하여 주면 내림차순으로 정렬 후 출력할 수 있다.
하지만, c++에서 내림차순으로 정렬해주는 함수를 따로 만들지 않아도 내림차순으로 정렬해주는 함수가 있는데, 바로 greater<자료형>함수 이다. 이 함수를 사용해 주면 좀 더 간단하게 문제를 해결 할 수 있다.
'Koala - 6기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/python] 14935번 FA (0) | 2022.04.03 |
---|---|
[백준/python] 3181번 줄임말 만들기 (0) | 2022.04.03 |
[백준/python] 2947번 나무 조각 (0) | 2022.04.03 |
[백준/Python] 3181번: 줄임말 만들기 (0) | 2022.04.02 |
[백준/Python] 11024번: 더하기4 (0) | 2022.04.01 |