Algorithms 🚀/Baekjoon

[백준/1427번] 소트인사이드 - JAVA[자바]

728x90

www.acmicpc.net/problem/1427

 

1427번: 소트인사이드

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

www.acmicpc.net

최근 며칠 동안 정렬에 대한 개념이 부족하다고 생각되어서 정렬 문제 위주로 풀고 있는 중입니다.

 

쉬운 문제부터 풀어나가고 있는데 아직도 조금 헷갈리는 부분들이 있네요 ㅎㅎ..

 

이 문제 난이도는 하? 정도라고 생각하고 정렬 인터페이스만 사용할 수 있다면 쉽게 풀 수 있는 문제입니다.

 

시간과 메모리에 제한이 있기 때문에 스캐너가 아닌 BufferedReader의 사용이 필수인 문제입니다!

package baekjoon.level12;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;

public class BOJ_1427 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());
        String num = String.valueOf(N);

        int[] nums = new int[num.length()];

        int i=0;
        while(N > 0) {
            nums[i] = N % 10;
            N /= 10;
            i++;
        }

        Integer[] boxed_nums = new Integer[nums.length];

        for(int j=0; j<boxed_nums.length; j++){
            boxed_nums[j] = nums[j];
        }

        Arrays.sort(boxed_nums, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        });

        for(int res : boxed_nums) {
            System.out.print(res);
        }

    }
}

 

입력된 자릿수의 길이를 가진 배열 생성 후 각 자릿수를 넣고 Comparator를 이용해서 내림차순으로 정렬해주었습니다.

 

 

728x90