본문 바로가기

Programming/Algorithm (C++)

[백준 1427번] C언어 :: 소트인사이드

문제

배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.

입력

첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.

예제 입력 1 복사

2143

예제 출력 1 복사

4321

#include <stdio.h>
#include <string.h>
int main() {

	int arr[10000] = { 0, };
	char s[10000];
	int tmp = 0;
	int i, j;
	scanf("%s", &s);

	for (i = 0; i < strlen(s); i++)
		arr[i] = s[i] - '0';

	

	for (i = 0; i < strlen(s) - 1; i++) {
		for (j = 0; j < strlen(s) - 1; j++) {
			if (arr[j] < arr[j + 1]) {
				tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
			}
		}
	}

	for (i = 0; i < strlen(s); i++)
		printf("%d", arr[i]);






	return 0;
}

띄어쓰기 없는 문자열은 -'0'하면서 숫자로 만들어주기