배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
예제 입력1
2143
예제 출력1
4321
예제 입력2
999998999
예제 출력2
999999998
예제 입력3
61423
예제 출력3
64321
예제 입력4
500613009
예제 출력4
965310000
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int count = 0; //입력받은 n의 자릿수
int temp = n;
do { //자릿수 계산
temp /= 10;
count++;
} while (temp > 0);
int[] arr = new int[count];
for(int i=0; i<arr.length; i++){
arr[i] = n / (int)Math.pow(10, (count-i-1)); //각 자릿수 배열로 저장
n %= (int)Math.pow(10, (count-i-1));
}
Arrays.sort(arr); // 오름차순 정렬
for(int i=arr.length-1; i>=0; i--){ //내림차순 정렬렬
System.out.print(arr[i]);
}
}
}
do-while로 정수의 자릿수 구하기
→ 입력값이 0인 경우도 고려