본문 바로가기

[C언어] 백준온라인/정렬

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


1427. 소트인사이드 (누르면 해당 문제로 이동)

숫자를 정렬하는 문제

 

제약사항)

시간 : 2 초

메모리 : 128 MB

 

문제)

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

 

입력)

첫째 줄에 정렬하고자하는 수 N이 주어진다.

N은 1,000,000,000 보다 작거나 같은 자연수이다.

 

출력)

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

 

입출력 예제

입력 출력
2143 4321

 


 

풀이 순서)

1. 입력 N 이 공백 없이 한 줄로 주어지기 때문에 gets 함수를 이용하여 char 형으로 입력받습니다.

2. 입력 받은 수의 각 자리수를 비교하여 내림차순으로 정렬합니다.

3. puts 함수를 이용하여 정렬된 수를 출력합니다.

 


 

소스코드 및 결과 (C)

#include <stdio.h>
#include <string.h>

int main() {
	char N[11] = { NULL };

	int tmp;

	gets(N);

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

	puts(N);

	return 0;
}

 

메모리 : 1112 KB

시간 : 0 ms

코드길이 : 290 B