https://www.acmicpc.net/problem/1427
문제
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
입력
첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
예제 입력 1
2143
예제 출력 1
4321
삽입정렬을 이용해서 풀었다.
내림차순으로 정렬해서 출력하는 간단한 문제이다.
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
|
#include <stdio.h>
#include <stdlib.h>
#define SWAP(x,y,t)((t)=(x),(x)=(y),(y)=(t))
#define MAX 999
int ascend (int x, int y) { return y - x; }
int descend(int x, int y) { return x - y; }
void insertion_sort_fn (int list[], int n, int (*f)(int,int))
{
int i, j, key;
for(i=1; i<n; i++){
key = list[i];
for(j=i-1 ; j>=0 && f(list[j],key) < 0 ;j--)
list[j+1] = list[j];
list[j+1] = key;
}
}
int main() {
int list[MAX];
int num;
int c=0;
scanf("%d", &num);
while(true){
list[c]=num%10;
num/=10;
c++;
if(num==0) break;
}
insertion_sort_fn( list, c, descend );
for( int i=0 ; i<c; i++ )
printf("%d", list[i]);
printf("\n");
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
'C++ > 백준' 카테고리의 다른 글
[C++][백준] 1712 손익분기점 (0) | 2020.03.09 |
---|---|
[C++][백준][정렬] 1431 시리얼 번호 (0) | 2020.03.09 |
[C++][백준] 1330 두 수 비교하기 (0) | 2020.03.09 |
[C++][백준][DFS/BFS] 1260 DFS와 BFS (1) | 2020.03.09 |
[C++][백준][정렬] 1174 줄어드는 숫자 (0) | 2020.03.09 |