[Baekjoon] Class2 34 - 수 정렬하기 3 [10989]
수 정렬하기 3 [10989번]
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
생각해볼점
배열 num_arr[10001]
에 10000까지의 수들이 각각 몇 번 나오는지를 저장한 후, 앞에서부터 순서대로 각 수가 나온 횟수만큼 출력한다.
코드 구현
#include <stdio.h>
int main()
{
int num, num_arr[10001] = {0, }, temp, idx, idx2;
scanf("%d", &num);
idx = -1;
while (++idx < num)
{
scanf("%d", &temp);
num_arr[temp]++;
}
idx = -1;
while (++idx <= 10000)
{
idx2 = -1;
while (++idx2 < num_arr[idx])
printf("%d\n", idx);
}
return (0);
}