최대 1 분 소요

[백준 1427번] 소트인사이드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package _1월_3주차;
 
import java.util.Scanner;
import java.util.Arrays; //sort를 사용하기 위해서 임포트함
import java.util.Collections; //reverseOrder매서드를 사용해주기 위해서 임포트함
public class 백준_손수경_정답_1427 {
 
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        String strNum = String.valueOf(num); //각 자리수마다 쪼개기 위해서는 문자열로 바꾼다.
        String[] arrayStrNum = strNum.split(""); //문자열로 바뀐 입력값을 split을 통해서 배열로 넣어준다.
 
        Arrays.sort(arrayStrNum, Collections.reverseOrder());
        for (int i = 0; i < arrayStrNum.length; i++) {
            System.out.print(arrayStrNum[i]);
        }
    }
}
 
cs

나는 입력받은 숫자를 가지고 문자열로 바꾸고 문자열로 바뀐 숫자를 .split(“”);을 활용해서 배열에 넣어준 후, Arrays.sort를 이용해서 역순으로 정렬했다. 하지만 먼저 문제의 정답을 올리신 분을 봤더니 더 간단했다. 오름차순으로 정렬을해서 인덱스를 큰수부터 출력을 한 것이었다. 이에 더 효율적인 것 같다. 그래도 여튼 백준에서 성공이라고 떴으니 일단 포스팅을 해본다,,ㅎ

댓글남기기