배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
[입력]
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
[출력]
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
char[] charr = br.readLine().toCharArray();
ArrayList<Integer> iarr = new ArrayList<>();
for(char e : charr) {
iarr.add(Character.getNumericValue(e));
}
Collections.sort(iarr, Collections.reverseOrder());
for(Integer e : iarr) {
bw.write(e+"");
}
bw.flush();
bw.close();
}
}
- 참고 코드
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] string = br.readLine().split("");
Arrays.sort(string, Collections.reverseOrder());
for(String e : string) {
bw.write(e+"");
}
bw.flush();
bw.close();
}
}
- 공백이 없을 경우에는 split을 ""으로 공백을 주지 않아도 된다.
- 내가 푼 코드에는 ArrayList를 사용해서 Collections의 메소드를 사용하여 sort 하였으며,
- 참고 코드에서는 String 배열로 Arrays 메소드를 사용하여 sort 하였다.
- sort의 기본은 오름차순. 내림차순을 하기 위해서는 공통으로 Collections.reverseOreder() 사용