알고리즘/BOJ (JAVA)

(JAVA) 백준 1427번 : 소트인사이드

띵킹 2022. 1. 23. 16:26

 

https://www.acmicpc.net/problem/1427

 

1427번: 소트인사이드

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

www.acmicpc.net

문제

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

입력

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

출력

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


정렬 문제와 마찬가지로 ArrayList와 Sort를 사용하니 간단했던 문제 

알고리즘의 어려움도 있지만 지금은 자바의 문법과 기능을 아직 잘 몰라서 못 푸는 문제가 많은 것 같다.

 

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;

public class B_1427 {
    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[] N = br.readLine().split(""); //입력받은 숫자를 자릿수만큼 잘라 문자열 배열로 만든다.
        ArrayList<Integer> list1 = new ArrayList<Integer>(N.length); //문자열 배열의 길이만큼 ArrayList를 만든다.
        for (int i = 0;i<N.length;i++) {
            list1.add(Integer.parseInt(N[i]));
        } //ArrayList에 자른 숫자를 집어넣는다.
        Collections.sort(list1); //ArrayList를 오름차순으로 정렬
        for (int j = N.length-1; j>=0; j--) {
            bw.write(Integer.toString(list1.get(j)));
        } //정렬한 ArrayList를 역순으로 버퍼에 집어넣는다
        bw.flush(); //출력
        bw.close();        
    }    
}

728x90