본문 바로가기

문제풀이/C 문제풀이

1427

1427

1427번 문제
#include 
#define MAX 10000

int main(void) {
	int arr[MAX], n, k = 0, i, j, temp, a;

	scanf("%d", &n);
	 do {
		arr[k++] = n % 10;
	 } while ((n /= 10) != 0);

	 for (i = 1; i < k; i++)
		 for (j = 0; j < i; j++) {
			 if (arr[i] < arr[j]) {
				 a = i;
				 temp = arr[i];
				 while (a > j)
					 arr[a--] = arr[a - 1];
				 arr[j] = temp;
			 }
		 }

	 for (i = k-1; i >= 0; i--)
		 printf("%d", arr[i]);
}

결과

1427.png

처음 입력 받는 숫자만 자릿수대로 나눠서 배열에 저장한다면 나머지는 전의 문제에서 풀었던 정렬 코드를 그대로 이용하면 된다. 이 경우에는 insertion sort를 이용하였다.

'문제풀이 > C 문제풀이' 카테고리의 다른 글

[HackerRank]Simple Array Sum  (0) 2019.05.17
1181  (0) 2019.03.01
2108  (0) 2019.03.01
10989  (0) 2019.03.01
2750  (0) 2019.03.01