출처 | https://www.acmicpc.net/problem/1427
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
#include <stdio.h>
#include <string.h>
int main()
{
// 공백 없이 한 줄로 주어지기 때문에 gets 함수를 이용하여 char형으로 받는다.
// gets 자체가 문자열로 입력을 받기 때문에 char로 받는다.
// 입력 받은 수의 각 자리수를 비교하여 내림차순으로 정렬한다.
// puts 함수를 이용하여 정렬된 수를 출력한다.
char N[11] = { NULL};
int temp;
gets(N);
for (int i = 0; i < strlen(N) - 1; i++)
{
for (int j = i; j < strlen(N); j++)
{
if (N[i] < N[j])
{
temp = N[i];
N[i] = N[j];
N[j] = temp;
}
}
}
puts(N);
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
int arr[10000] = { 0, };
char s[10000];
int tmp = 0;
int i, j;
scanf_s("%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;
}
차이점은 gets | puts의 사용 유무다.
많이 부족하다. 더 열심히 공부하자.