# 문제 출제 사이트
https://www.acmicpc.net/problem/1427
# 문제
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
# 입력
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
# 출력
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
# 제출한 소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inputStr = br.readLine();
Integer[] numArr = new Integer[inputStr.length()];
for ( int i = 0; i < inputStr.length(); i++ ) {
numArr[i] = Integer.parseInt(String.valueOf(inputStr.charAt(i)));
}
Arrays.sort(numArr, Collections.reverseOrder());
StringBuilder sb = new StringBuilder();
for ( int num : numArr ) {
sb.append(num);
}
System.out.println(sb);
}
}
- Arrays 클래스의 sort 함수를 사용했습니다(내림차순 정렬).
- StringBuilder 에 정수형 배열의 numArr 의 값을 넣어 출력했습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inputStr = br.readLine();
Integer[] numArr = new Integer[inputStr.length()];
for ( int i = 0; i < inputStr.length(); i++ ) {
numArr[i] = Integer.parseInt(String.valueOf(inputStr.charAt(i)));
}
Arrays.sort(numArr, Collections.reverseOrder());
for ( int num : numArr ) {
System.out.printf("%d", num);
}
}
}
- 굳이 StringBuilder 를 사용할 필요가 없다고 판단되어 printf 를 사용했습니다.
반응형