문제요약:
자연수 N이 주어지면, 그 수의 각 자리수를 내림차순으로 정렬하여 출력하는 프로그램을 작성하라
제약:
시간 제한 2초, 메모리 128MB
1 <= N <= 1,000,000,000
출력:
입력된 N의 각 자리수를 내림차순으로 정렬한 수를 출력.
예제 1 입력. | 예제 1 출력. |
2143 | 4321 |
예제 2 입력. | 예제 2 출력. |
999998999 | 999999998 |
예제 3 입력. | 예제 3 출력. |
61423 | 64321 |
예제 4 입력. | 예제 4 출력. |
500613009 | 965310000 |
정답코드:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#include <iostream>
#define MAX_ARR_COUNT (10)
using namespace std;
// Target numbers range from 0 to 9.
// Best environment for using Count Sort.
int nCountOfNum[MAX_ARR_COUNT];
int main()
{
int N, nTmp;
// Reset Count Array
for (int i = 0; i < MAX_ARR_COUNT; i++)
{
nCountOfNum[i] = 0;
}
// get Input Number
cin >> N;
// Count the numbers' occurrence
nTmp = N;
while (nTmp > 0)
{
nCountOfNum[nTmp % 10]++;
nTmp /= 10;
}
// print out numbers by descending order.
for (int j = (MAX_ARR_COUNT - 1); j >= 0; j--)
{
while (nCountOfNum[j] > 0)
{
cout << j;
nCountOfNum[j]--;
}
}
return 0;
}
|
cs |
'알고리즘 문제풀이' 카테고리의 다른 글
[알고리즘] 백준 11651번 "좌표 정렬하기 2" (C/C++) - Don 임베디드 (32) | 2022.04.17 |
---|---|
[알고리즘] 백준 2231번 "분해합" (C/C++) - Don 임베디드 (31) | 2022.04.16 |
[알고리즘] 백준 10989번 "수 정렬하기 3" (C/C++) - Don 임베디드 (25) | 2022.04.12 |
[알고리즘] 백준 2751번 "수 정렬하기 2" (C/C++) - Don 임베디드 (20) | 2022.04.10 |
[알고리즘] 백준 2798번 "블랙잭" (C/C++) - Don 임베디드 (2) | 2022.04.08 |