<백준> 10989

진기명기·2025년 4월 6일

코딩테스트<C++>

목록 보기
36/212

수 정렬하기 3

문제
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';
}

0개의 댓글