[Programmers]정수 내림차순으로 배치하기(java/lv1)

Mijeong Ryu·2023년 6월 6일
0

Programmers

목록 보기
18/50

https://school.programmers.co.kr/learn/courses/30/lessons/12933

문제

문제 설명

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

제한 조건
n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n return
118372 873211

코드

import java.util.*;
class Solution {
    public long solution(long n) {
        long answer = 0;
        String s = Long.toString(n);
        ArrayList<Character> list = new ArrayList<>();
        for(int i = 0; i<s.length(); i++){
            list.add(s.charAt(i));
        }
        Collections.sort(list, Collections.reverseOrder());
        StringBuilder sb = new StringBuilder();
        for(int i=0; i<list.size();i++){
            sb.append(list.get(i));
        }
        answer = Long.parseLong(sb.toString());
        return answer;
    }
}

풀이

범위가 크기 때문에 String을 사용하면 타임아웃에 걸린다. 그래서 StringBuilder로 풀어주어야함 !

0개의 댓글