코딩/백준 문제 (실버)

[백준/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. 출력