달달한 스토리

728x90
반응형

출처 핀터레스트

 

오늘 추석이라 회사에서 점심먹고 퇴근하라고 한다.

 

개이득!!!

 

오늘 푼 문제는 소트인사이드이다.

 

Primitive type을 Wrapper type으로 바꾸는 것만 신경쓰면 정말 쉬운 문제였다.

 

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

public class Test1427 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String N = br.readLine();
        StringBuilder sb = new StringBuilder();

        int[] arr = new int[N.length()];

        for(int i = 0; i < arr.length; i++) {
            arr[i] = N.charAt(i) - '0';
        }

        //배열은 primitive type을 Wrapper type으로 변경해야 sort 메서드를 사용 가능하다.
        Integer[] tmp = Arrays.stream(arr).boxed().toArray(Integer[]::new);
        Arrays.sort(tmp, Comparator.reverseOrder());

        for(int i : tmp) {
            sb.append(i);
        }
        System.out.print(sb);
    }
}

 

버퍼리더로 받은 N값을 String으로 받고,

 

N의 길이 만큼 배열을 만든다.

 

for문을 돌리고, 각각의 숫자의 char값을 얻고, '0'을 빼주어 int 변환하여 배열에 넣어준다.

 

반응형

 

그리고 아래 코드처럼 타입을 변경하여 sort해준다.

 

Arrays.sort()는 기본적으로 Primitive type과 Wrapper type 둘다 정렬이 가능하지만,

 

내림차순으로 변경해주는

Comparator.reverseOrder()

 

속성을 넣게 되면,

 

Primitive type 정렬이 불가해진다.

 

고로, Primitive Type을 Wrapper Type으로 변경해주고 정렬을 시도해야한다.

728x90
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading