계수 정렬을 사용하였는데도 메모리 부족이 나왔다.
입력 시 vector 의 사이즈를 다시 설정해주면서 count 배열로 만들고 그대로 출력 시켜서 메모리 부족을 해결했다.
배열 하나만 사용하였다.
#include <iostream>
#include <vector>
using namespace std;
int main(void)
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int num = 0;
int max = 0;
cin >> num;
vector<int> nums;
for (int i = 0; i < num; ++i)
{
int push = 0;
cin >> push;
if (push < nums.size())
{
nums[push-1]++;
}
else
{
nums.resize(push);
nums[push-1]++;
}
}
// i 인덱스 자체가 정렬 될 숫자이다.
// countint[i] 의 값은 정렬 될 숫자가 중복된 수 이다.
for (int i = 0; i < nums.size(); ++i)
{
if (nums[i] != 0)
{
// i 라는 값이 중복된 수 만큼 반복 출력된다.
for (int j = 0; j < nums[i]; ++j)
{
cout << i + 1 << "\n";
}
}
}
return 0;
}