문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
처음에는 그냥 정렬만 하는 줄 알고, sort를 사용해 풀었는데 메모리초과라는 문제를 직면했다.
그래서 갯수를 하나씩 체크하는 코드로 변경했다.
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int cnt[10001] = { 0 };
int n, count;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> count;
cnt[count]++;
}
for (int i = 1; i < 10001; i++)
for (int j = 0; j < cnt[i]; j++)
cout << i << '\n';
}