시간 제한 : 2 초
메모리 제한 : 256 MB
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다.
둘째 줄부터 N개의 줄에는 수가 주어진다.
이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다.
수는 중복되지 않는다.
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
시간 복잡도가 O(nlogn) 인 정렬 알고리즘으로 풀 수 있다.
ex : 병합 정렬, 힙 정렬
어려운 알고리즘이므로 언어에 내장된 정렬 함수를 쓰는 것을 추천한다고 한다.
이문제는 c++ 내장 sort함수를 통해 구현이 가능하지만,
병합 정렬이나 힙 정렬을 적접 구현해야만 풀 수 있는 문제도 있다고 한다.
다음에 관련 문제가 나오면 꼭 직접 구현해보도록 하자!
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int N;
cin >> N;
int arr[N];
for (int i = 0; i < N; i++)
{
cin >> arr[i];
}
sort(arr, arr + N);
for (int i = 0; i < N; i++)
{
cout << arr[i] << '\n';
}
return 0;
}