1427번: 소트인사이드

Minseo Kang·2023년 3월 9일
0

백준

목록 보기
6/13
post-thumbnail

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


[ 입력 ]
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.


[ 출력 ]
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.




[ 풀이 ]
0. BufferedReader, StringBuilder, ArrayList 생성
1. num 입력받고 그 수를 문자열로 바꾸기
2. 문자열의 인덱스에 하나씩 접근하면서 Character를 int형으로 반환받아 ArrayList에 담기
3. Collections의 sort 메소드에 ArrayList를 담아 일단 오름차순으로 정렬
4. Collections의 reverse 메소드에 ArrayList를 담아 내림차순으로 정렬
5. 출력


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;

public class Main {

    public static void main(String[] args) throws IOException {

        // 0
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        ArrayList<Integer> arr = new ArrayList<>();

        // 1
        int num = Integer.parseInt(bf.readLine());
        String numString = Integer.toString(num);

        // 2
        for(int i = 0; i < numString.length(); i++) {
            arr.add(Character.getNumericValue(numString.charAt(i)));
        }

        // 3
        Collections.sort(arr);

        // 4
        Collections.reverse(arr);

        // 5
        for(int i = 0; i < numString.length(); i++) {
            sb.append(arr.get(i));
        }
        System.out.print(sb);

    }
}



[ 배운 것 ]

Collections 클래스의 reverse 메소드

  • sort 메소드는 오름차순으로 정렬

  • reverse 메소드는 현재의 배열을 거꾸로 뒤집음




[ 실행 결과 ]

0개의 댓글