본문 바로가기

Coding Test/프로그래머스

27 Java - 정수 내림차순으로 배치하기

문제 설명

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

 

제한 조건

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

 

입출력 예

n return
118372 873211

 

import java.util.*;
class Solution {
    public long solution(long n) {
        
        //long 타임 변수 n을 Long.toString(n).toCharArray()을 사용해서
        //하나씩 잘라 Char[] 타입 배열 arr에 저장
        char[] arr = Long.toString(n).toCharArray();
        
        //arr정렬
        Arrays.sort(arr);
        
        //long 타입으로 반환할 answer을 0으로 초기화 선언
        long answer = 0;
        
        //i를 0이 되기까지 for문 반복
        for(int i = arr.length - 1; i >= 0; i--){
            
            //answer에 input[i] - '0'을 함으로써
            //정수 배열에 문자열 숫자를 넣음
            answer += arr[i] - '0';
            
            //answer *= 10 때문에 input이 118372면 8732110이 되니까
            //anser에 10을 곱해 다음 자릿수를 더해줄 수 있도록 설정
            answer *= 10;
        }
        
        //여기서 answer / 10을 해주어야 함
        // answer/10한 값을 return을 사용하여 반환
        return answer / 10;
    }
}