본문 바로가기

Algorithm/Baekjoon Oline Judge - Java

[백준] 1427_ 소트인사이드 / StringBuilder.reverse(), Collections.reverseOrder()

 

Sliver

 

문제

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

 

입력

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

 

출력

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

 


 

풀이1. - Collections.reserveOrder()

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        StringBuilder sb = new StringBuilder();
        String num = String.valueOf(sc.nextInt());
        String[] arr = num.split("");
        Arrays.sort(arr, Collections.reverseOrder());
        for(int i=0; i<arr.length; i++){
            sb.append(arr[i]);
        }
        
        System.out.println(Integer.parseInt(sb.toString()));
        
        sc.close();
    }
    
}

 

Collections.reverseOrder()를 사용해 배열을 내림차순으로 정렬해주었다.

Collections.reverseOrder()는 비교 기준을 거꾸로(내림차순) 반환해주는 역할을 한다. 

 


 

풀이2 - StringBuilder().reverse()

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);     
        char[] arr = sc.nextLine().toCharArray();
        Arrays.sort(arr);
        StringBuilder sb = new StringBuilder(new String(arr));
        
        System.out.println(sb.reverse().toString());
        
        sc.close();
    }
    
}

 

 


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