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

조예빈·2024년 6월 24일
0

Coding Test

목록 보기
13/138

https://www.acmicpc.net/problem/1427
정렬 문제였다. 문제 자체는 내림차순으로 정렬하려면 까다로워 보이지만, 자바에서 제공하는 sort 기능을 사용하면 간단하게 풀리는 문제이다.

문제에서는 정렬하려고 하는 수 N이 자연수라고 하였다. 하지만, 이를 굳이 int 형으로 작성하지 않아도 된다. 백준에서 제공하는 input이 자연수라는 의미이기 때문이다. 그래서 나는 String값으로 입력받고, 입력받은 것을 바로 String 배열에 split 해 주도록 코드를 작성하였다.

일반적인 sort는 오름차순이고, 내림차순으로 정렬하려면 다음과 같이 써 주어야 한다.

Arrays.sort(정렬하려는 배열, Collections.reverseOrder())

이후 이 배열을 toString으로 바꾸어 출력하면 [n,n,n ...]과 같은 형식이 되므로 바로 출력해 줄 수 없다. 따라서 배열을 순회하며 StringBuffer에 넣어주고 나중에 StringBuffer에 들어있는 값을 한꺼번에 출력하도록 코드를 작성해 주었다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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));
        StringBuffer sb = new StringBuffer();
        String[] input = br.readLine().split("");
        Arrays.sort(input, Collections.reverseOrder());
        for(int i=0;i<input.length;i++){
            sb.append(input[i]);
        }
        System.out.println(sb);
        br.close();
    }
}

profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러

0개의 댓글