[프로그래머스] 정수 내림차순으로 배치하기 (JAVA)

업데이트:

문제 설명

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



  • 제한 조건

n은 1이상 8000000000 이하인 자연수입니다.


  • 예시

image




풀이

import java.util.*;

class Solution {
    public long solution(long n) {
        
        String[] arr = String.valueOf(n).split("");
        
        Arrays.sort(arr,Collections.reverseOrder());

        
        String answer = "";
        
        for(String a : arr){

            answer += a;
        }

        return Long.parseLong(answer);
    }
}


String.valueOf(a); -> 숫자 자료형 String 타입으로 변경하기.
Long.parseLong(a); -> String자료형에서 Long자료형으로 변경하기.


우선 long자료형인 정수 n을 String으로 변경한 후 하나씩 잘라서 배열에 넣는다.
그 후 Arrays.sort메서드를 이용해 Collections.reverseOrder()로 배열을 내림차순으로 정렬한다.

정렬 후 바로 Long 타입에 데이터를 하나씩 담게되면 총 합이 나오기 때문에
먼저 String에 데이터를 누적시킨 후, String을 Long 타입으로 변환시켜 반환한다.



댓글남기기