반응형
문제
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
입력
첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
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));
int N = Integer.parseInt(br.readLine());
ArrayList<Integer> arr = new ArrayList<Integer>();
while (true) { //N의 각 자리수를 List의 요소 값으로 넣기 위한 while반복문
int temp = N % 10; // N의 1의자리 숫자를 temp로 저장
arr.add(temp); // temp값을 ArrayList에 추가
N = N / 10; // N의 10의자리 숫자를 도출하기 위해 10으로 나눠준다.
if (N == 0) {
break; // 모든 자릿수를 넣었으면 반복문 종료
}
}
Collections.sort(arr); // ArrayList를 오름차순 정렬
int sum = 0;
for (int i = arr.size() - 1;i >= 0 ; i--) {
sum += (arr.get(i)*((int)(Math.pow(10, i))));
// ArrayList의 마지막 요소부터 꺼낸 뒤 10의 (index)승만큼 곱해서
내림차순으로 표현된 수를 완성한다. }
bw.write(sum+"");
bw.flush();
bw.close();
br.close();
}
}
|
cs |
반응형
'IT > JAVA' 카테고리의 다른 글
백준 코딩 2748 : 피보나치 수 (0) | 2020.09.16 |
---|---|
백준 코딩 11399번 : ATM (0) | 2020.09.15 |
백준 코딩 10773 : 제로 (0) | 2020.09.13 |
백준 코딩 2108 : 통계학 (0) | 2020.09.11 |
백준 코딩 1085 : 직사각형에서 탈출 (0) | 2020.09.10 |