본문 바로가기
○ 기술면접/알고리즘

정렬: 소트인사이드 (백준 1427)

by ZEROMI 2023. 3. 23.
728x90

○ 문제

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

 

○ 입력

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

 

○ 출력

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

 

○ 예제 입력

2143

 

○ 예제 출력

4321


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.Arrays;
//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));

        //문자 배열 생성
        String num = br.readLine();
        char[] arr = new char[num.length()];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = num.charAt(i);
        }
        
        //Wrapper class boxing => char 자료형은 생성불가
        //Character boxArr = Arrays.stream(arr).boxed().toArray(Character[]::new); 
        //Arrays.sort(boxArr, Collections.reverseOrder());
        
        //내림차순 정렬 불가하므로 정렬 역사용
        Arrays.sort(arr);
        String result = new String();
        for (int i = arr.length-1; i >= 0; i--) {
            result += String.valueOf(arr[i]);
        }
        
        bw.write(result);
        
        bw.flush();
        bw.close();
        
    }
}

○ 확인

- primitive Type Wrapper클래스로 박싱해주어야 reverseOrder 사용가능.

- Integer[] tmp = Arrays.stream(intArray).boxed().toArray(Integer[]::new);

- Arrays 클래스에 char 자료형은 오버로드가 없다

728x90