https://www.acmicpc.net/problem/2751
[필자 사고]
정렬 문제이다.
이 문제의 핵심은 N의 갯수가 1~ 1000000 이라는 점이다.
버블정렬과 같은 시간복잡도가 N^2인 경우를 사용할경우 1억번의 연산을 초과하여 시간초과가 발생한다.
그렇다면 N^2이 아닌 NlongN 정렬 알고리즘을 사용해야 된다.
c++ 대표적인 벡터 내적함수 ;sort를 사용하면 문제를 쉽게 해결할 수 있다.
[소스 코드]
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int N;
vector<int> arr;
void Input() {
cin >> N;
arr.resize(N);
for (int i = 0; i < N; i++) {
cin >> arr[i];
}
sort(arr.begin(), arr.end());
}
void Print() {
for (int i = 0; i < N; i++) {
cout << arr[i] << '\n';
}
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
Input();
Print();
}
'백준 > 정렬' 카테고리의 다른 글
백준 1202 C++ "보석 도둑" -PlusUltraCode- (1) | 2024.11.14 |
---|---|
백준 10986 c++ "나머지 합" -PlusUltraCode- (0) | 2024.08.02 |
백준 11659 c++ "구간 합 구하기 4" -PlusUltraCode- (0) | 2024.08.01 |
백준 1546 c++ "평균" -PlusUltraCode- (0) | 2024.07.30 |
백준 11720 c++ "숫자의 합" -PlusUltraCode- (0) | 2024.07.30 |