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

이진솔·2024년 4월 17일
0
post-thumbnail

# 문제

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

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

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

# 정답

import java.io.*;
import java.util.ArrayList;
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));

        char[] charr = br.readLine().toCharArray();
        ArrayList<Integer> iarr = new ArrayList<>();
        for(char e : charr) {
            iarr.add(Character.getNumericValue(e));
        }

        Collections.sort(iarr, Collections.reverseOrder());

        for(Integer e : iarr) {
            bw.write(e+"");
        }
        bw.flush();
        bw.close();
    }
}

# 알아가야 할 것

  • String 배열에서도 내림차순 가능 => 굳이 char타입으로 받아서 int로 변환하지 않아도 가능하다.

- 참고 코드

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[] string = br.readLine().split("");

        Arrays.sort(string, Collections.reverseOrder());

        for(String e : string) {
            bw.write(e+"");
        }
        bw.flush();
        bw.close();
    }
}
- 공백이 없을 경우에는 split을 ""으로 공백을 주지 않아도 된다.
- 내가 푼 코드에는 ArrayList를 사용해서 Collections의 메소드를 사용하여 sort 하였으며,
- 참고 코드에서는 String 배열로 Arrays 메소드를 사용하여 sort 하였다.
- sort의 기본은 오름차순. 내림차순을 하기 위해서는 공통으로 Collections.reverseOreder() 사용
profile
성장하기

0개의 댓글