풀이
"수 정렬하기 2"와는 반대로 시간효율보다 공간효율이 중시되는 문제이기 때문에 동일한 코드를 사용하면 틀릴 것 이다.
그래서, 주어지는 숫자의 개수를 배열에 저장 후, 각 숫자의 개수만큼 반복해서 출력하는 방법으로 해결했다.
소스코드
#include <stdio.h>
#define MAX 10000
int main(){
int N, num, cnt[MAX] = {0, };
scanf("%d", &N);
while (N--){
scanf("%d", &num);
cnt[num-1]++;
}
for (int i = 0; i < MAX; i++)
if (cnt[i] != 0)
for (int j = 0; j < cnt[i]; j++)
printf("%d\n", i + 1);
}
출처
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 10430] 나머지 [C] (0) | 2021.07.18 |
---|---|
[백준 2750] 수 정렬하기 [C] (0) | 2021.07.18 |
[백준 1085] 직사각형에서 탈출 [C] (0) | 2021.07.17 |
[백준 1978] 소수 찾기 [C] (0) | 2021.07.17 |
[백준 11651] 좌표 정렬하기 2 [C] (0) | 2021.07.16 |