문제
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
입력
첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
예제 입력 1
2143
예제 출력 1
4321
#include <stdio.h>
#include <string.h>
int main() {
char n[10];
char tmp;
scanf("%s", n);
for (int i = 0; i < strlen(n) - 1; i++) {
for (int j = 0; j < strlen(n); j++) {
if (n[j] < n[j + 1]) {
tmp = n[j];
n[j] = n[j + 1];
n[j + 1] = tmp;
}
}
}
printf("%s", n);
return 0;
}
정렬방법은 위 말고도 많지만, 구현이 비교적 간단한 버블정렬로 해결했다.
지금은 정렬시킬 수가 많지않아서 버블정렬로했지만, 사이즈가 커질수록 버블정렬은 효율적이지 못하다.
극단적인 예로 이미 정렬되있는 수를 입력했을때도, 정렬을 수행하게 되서 효율성이 매우 떨어진다.
퀵정렬, 합병정렬, 등등 많으니 시간나면 참고해보는 것도 좋겠다.
'PS > 백준' 카테고리의 다른 글
백준 / String(문자열) / 10808번 / 알파벳 개수 / C (0) | 2021.02.20 |
---|---|
백준 / String(문자열) / 10773번 / 제로 / C (0) | 2021.02.20 |
백준 / String(문자열) / 10953번 / A+B - 6 / C (0) | 2021.02.19 |
백준 / String(문자열) / 11719번 / 그대로 출력하기2 / C (0) | 2021.02.19 |