코딩/백준 문제 (실버)
[백준/1427/C언어] 소트인사이드 _ 풀이
룻밤
2023. 9. 12. 13:00


https://www.acmicpc.net/problem/1427
풀이
#include <stdio.h>
int main() {
int n;
// n의값이 최대 10억이므로 자릿수는 최대 10자리
int arr[10];
scanf("%d", &n);
int m = n;
int i = 0;
// m이 1이상일때 반복
while (m>=1) {
// arr에 나머지를 할당(각 자릿수의 숫자)
arr[i] = m % 10;
// m을 뒤에서부터 한자리씩 줄인다
m = m / 10;
i++;
}
int temp;
// 선택정렬
for (int c = 0; c < i; c++) {
for (int j = c; j < i; j++) {
if (arr[c] < arr[j]) {
temp = arr[c];
arr[c] = arr[j];
arr[j] = temp;
}
}
}
for (int c = 0; c < i; c++) printf("%d",arr[c]);
return 0;
}
1. n의 각 자릿수에 맞는 숫자를 arr배열에 차례로 대입
2. arr배열을 내림차순으로 정렬
3. 출력