배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
#include <iostream>
using namespace std;
int main() {
int N, num[10] = {0, };
scanf("%d", &N);
while(N > 0) {
num[N%10]++;
N /= 10;
}
for(int i = 10; i-- > 0;) {
while(num[i]-- > 0)
printf("%d", i);
}
}
count sort를 알게 된 이후, 작고 적은 숫자에 대한 정렬에 대해 너무 좋다는걸 깨달았다.
각 자리수마다의 숫자를 index로 갯수를 count했고, 개수만큼 내림차순으로 출력했다.