반응형
[C++] BAEKJOON 2751번 : 수 정렬하기2
백준온라인 2751번 수 정렬 문제
문제
- N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
- 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다.
- 둘째 줄부터 N개의 줄에는 수가 주어진다.
- 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다.
- 수는 중복되지 않는다.
출력
- 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
예제 입력 및 출력
- input ex) 5 5 4 3 2 1
- output ex) 1 2 3 4 5
문제 풀이
입력 받는 수가 최대 1,000,000개로 크기가 크다. 저장 되는 영역(스택, 힙, 데이터)을 신경쓰도록한다.
첫째 줄에 입력 받을 수의 개수가 주어진다 N(1 <= N <= 1,000,000)
수는 중복되지 않으므로 중복검사는 할 필요가 없다.
퀵 정렬을 따로 구현할 필요 없이 C++ 내장 함수 sort를 사용한다.
#include <iostream>
#include <algorithm>
using namespace std;
#define MAX_COUNT 1000000
int arr[MAX_COUNT]; // 데이터 영역에 선언, 최대 크기로 미리 공간을 잡아 놓는다.
int main()
{
int cnt;
cin >> cnt; // N ( 1 <= N <= 1,000,000) 개수를 입력받는다.
// 입력 받을 만큼만 반복한다.
for (int i = 0; i < cnt; i++)
{
cin >> arr[i]; // 데이터 입력
}
sort(arr, arr + cnt); // #include <algorithm>의 내장 함수 sort를 사용한다. (qsort참고)
// 출력한다.
for (int i = 0; i < cnt; i++)
{
cout << arr[i] << "\n";
}
}
반응형
'Thinking > BAEKJOON' 카테고리의 다른 글
C++ BAEKJOON 28278번 : 스택2 (0) | 2023.09.18 |
---|---|
C++ BAEKJOON 15552번 빠른 A+B (0) | 2022.08.17 |
C++ BAEKJOON 25304번 영수증 (0) | 2022.08.17 |
C++ BAEKJOON 8393번 합 (0) | 2022.08.17 |
C++ BAEKJOON 10950번 A+B (0) | 2022.08.17 |