🔒 문제
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
⌨ 입력
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
🖨 출력
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
📚 예제
Ex1)
2143
4321
Ex2)
999998999
999999998
Ex3)
61423
64321
Ex4)
500613009
965310000
📌 풀이
주어진 수의 각 자리 수를 배열에 저장한 뒤 버블 소트를 사용했다
🔑 c언어 코드
#include <stdio.h>
#include <stdlib.h>
#define SWAP(x,y,t)(t=x,x=y,y=t)
int sort(int* ary, int N);
void print(int* ary, int N);
int main()
{
int N;
scanf("%d", &N);
int n = N;
int k = 0;
int* ary = malloc(sizeof(int) * 10);
while (1)
{
if (n == 0)
break;
ary[k++] = n % 10;
n /= 10;
}
ary = sort(ary, k);
print(ary, k);
return 0;
}
int sort(int* ary, int N)
{
int t;
for (int i = 0; i < N; i++)
for (int j = 1; j < N - i; j++)
if (ary[j - 1] < ary[j])
SWAP(ary[j - 1], ary[j], t);
return ary;
}
void print(int* ary, int N)
{
for (int i = 0; i < N; i++)
printf("%d", ary[i]);
}
'BAEKJOON > 단계별로 풀어보기' 카테고리의 다른 글
[BOJ] 2108번 : 통계학 (0) | 2022.09.05 |
---|---|
[BOJ] 10989번 : 수 정렬하기3 (0) | 2022.09.04 |
[BOJ] 2751번 : 수 정렬하기 (★) (0) | 2022.09.01 |
[BOJ] 25305번 : 커트라인 (0) | 2022.09.01 |
[BOJ] 1436번 : 영화감독 숌 (0) | 2022.08.27 |