본문 바로가기

IT/JAVA

백준 코딩 1427 : 소트인사이드

반응형

문제

배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.

입력

첫째 줄에 정렬하고자하는 수 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