[C++]백준10989번 수 정렬하기 3
오늘은 백준10989번 수 정렬하기 3 문제를 풀어보도록 하자.
수의 갯수가 10000000개고, 수는 10000보다 작거나 같은 자연수이기 때문에 카운팅소트로 가능하다고 생각했다. 시간도 3초로 넉넉하고.
하지만 시간초과가 났다. 그 이유는 ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);의 문제.
시간이 넉넉하다고 해서 위의 선언을 빼먹지 말아야겠다. cin과 cout은 생각보다 많은 시간을 잡아먹는다는 것을 느꼈다.
문제는 다음과 같다.
[접근법]
* 기본적인 카운팅소트
[코드]
#include <iostream>
using namespace std;
int arr[10001];
int N,num;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> N;
for (int i = 0; i < N; i++) {
cin >> num;
arr[num]++;
}
for (int i = 1; i <= 10000; i++) {
while (arr[i] > 0) {
cout << i << '\n';
arr[i]--;
}
}
}