일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 그리디알고리즘
- 백준알고리즘
- 수학
- MySQL
- 정렬
- 소수판정
- 프로그래머스코딩테스트
- 프로그래머스
- 프로그래머스연습문제
- 그리디
- C
- 프로그래머스sql
- SQL
- C언어
- C++
- Image Classification
- 논문구현
- 구현
- 이분탐색
- 문자열
- 자료구조
- 브루트포스알고리즘
- 사칙연산
- 이진탐색
- 백준
- 정수론
- 논문리뷰
- 다이나믹프로그래밍
- 해시를사용한집합과맵
- 큐
- Today
- Total
초보 개발자의 이야기, 릿허브
[C++] 백준 11931번 수 정렬하기 4 본문
1. 문제이해
https://www.acmicpc.net/problem/11931
N개의 정수가 주어질 때, 이를 내림차순으로 정렬하여 출력하는 것이 목표이다.
2. 문제풀이
앞서 풀이한 수 정렬하기 1, 2와 거의 동일한 문제이다.
(수 정렬하기 3의 경우에는 앞선 풀이방법대로 하면 시간초과가 발생했다.)
앞선 문제들과 다른 점이라면 입력받은 숫자들을 내림차순으로 정렬해야 한다는 점이다.
C++에서 지원하는 sort 함수의 기본형은 다음과 같다.
sort(a, a+N, compare);
여기서 첫 번째 인자인 a는 정렬을 시작하고자 하는 부분, 두번째 인자인 a+N은 정렬을 끝내고자 하는 부분.
마지막 인자인 compare는 정렬하는 조건을 포함하는 부분이다.
compare 부분은 생략가능하며, 디폴트 값은 "오름차순 정렬"이다.
따라서, 앞선 문제들에서 해당 부분을 생략해 오름차순으로 정렬해주었다면,
이번에는 compare부분에 내림차순으로 정렬하는 함수를 구현해 대입해주면 된다.
자세한 내용은 아래 코드를 참고하자.
비슷한 문제로는 2750번 수 정렬하기, 2751번 수 정렬하기 2 , 10989번 수 정렬하기 3이 있다.
해당 문제들에 대한 풀이와 소스코드는 아래 포스팅을 참고하자.
<2750번 수 정렬하기>
https://beginnerdeveloper-lit.tistory.com/105
<2751번 수 정렬하기 2>
https://beginnerdeveloper-lit.tistory.com/106
<10989번 수 정렬하기 3>
https://beginnerdeveloper-lit.tistory.com/107
3. 소스코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// 내림차순 정렬
bool DESC(int a, int b) {
return a > b;
}
int main() {
vector <int> v;
int N;
int element;
cin >> N;
for (int i = 0; i < N; i++) {
cin >> element;
v.push_back(element);
}
sort(v.begin(), v.end(), DESC);
for (int i = 0; i < N; i++) {
cout << v[i] << "\n";
}
return 0;
}
sort함수의 compare 부분에 들어갈 내림차순 함수를 위와 같이 구현했다. (bool DESC)
메인 함수에서 N개의 정수를 입력받아 벡터에 저장한 뒤, 해당 값들을 sort 함수를 이용해 정렬, 출력해주었다.
문제에 대한 질문이나 지적은 언제나 감사하게 받고있습니다.😊
'코딩테스트 > 📗 백준 (BOJ)' 카테고리의 다른 글
[C++] 백준 4779번 칸토어 집합 (4) | 2022.03.03 |
---|---|
[C++] 백준 10815번 숫자 카드 (0) | 2022.03.01 |
[C++] 백준 10867번 중복 빼고 정렬하기 (0) | 2022.02.24 |
[C++] 백준 1654번 랜선 자르기 (0) | 2022.02.23 |
[C++] 백준 11728번 배열 합치기 (0) | 2022.02.22 |