No Rules Rules

소트인사이드 (feat. 백준, 1427번) 본문

생활/코테

소트인사이드 (feat. 백준, 1427번)

개발하는 완두콩 2022. 8. 2. 22:24
728x90
반응형

소트인사이드
https://www.acmicpc.net/problem/1427

 

1427번: 소트인사이드

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

www.acmicpc.net

반응형
// woohyeon.kim
// https://www.acmicpc.net/problem/1427
#include <iostream>
using namespace std;
int buf[10];
void merge_sort(int* p, register int len) {
	if (len < 2)		return;
	register int i = 0, k = 0, mid = len / 2, j = mid;
	merge_sort(p, mid);
	merge_sort(p + mid, len - mid);
	while (i < mid && j < len) {
		if (p[i] < p[j])
			buf[k++] = p[i++];
		else
			buf[k++] = p[j++];
	}
	while (i < mid)
		buf[k++] = p[i++];
	while (j < len)
		buf[k++] = p[j++];
	for (register int i = 0; i < len; ++i)
		p[i] = buf[i];
}
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
	register int N, len = 0, arr[10];
	cin >> N;
	while (N) {
		arr[len++] = N % 10;
		N /= 10;
	}
	merge_sort(arr, len);
	for (register int i = len - 1; i >= 0; --i)
		cout << arr[i];
	return 0;
}
// *&)*@*

오름차순으로 정렬한 뒤, 마지막 배열부터 처음 순서 즉, 거꾸로 출력하면 됩니다.

728x90
반응형
Comments