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

강민범·2023년 2월 6일
0

문제 설명

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

제한 조건

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

입출력 예

n return
118372 873211

풀이

1.변수 nm에 n을 대입
2. while문으로 nm이 0보다 클때까지 cnt를 증가시키면서 10으로 나눠준다. 10으로 나눠주는 이유는 10을 한번씩 나눌때마다 자릿수만큼 얻을수있기 때문이다.
3.long배열을 cnt만큼 만들고 for문으로 num[i]에 n을 10으로 나눈 나머지를 넣는다.
4.for문이 끝나고 num을 오름차순으로 배열한다.
5.for문으로 맨 끝자리 배열부터 차례대로 String인 result에 넣는다.
6.string을 long으로 바꾸는 Long.parseLong() 함수를 사용해서 answer에 대입한다.

import java.util.Arrays;
class Solution {
    public long solution(long n) {
        long answer = 0;
        long nm = n;
        int cnt = 0;
        String result = "";
        
        while(nm>0){
            cnt++;
            nm/=10;
        }
        
        long[] num = new long[cnt];
        
        for(int i=0; i<num.length; i++){
            if(n<=0){
                break;
            }
            num[i] = n%10;
            n/=10;
            
        }
        Arrays.sort(num);
        
        for(int i=num.length-1; i>=0; i--){
            result += num[i];
        }
        answer = Long.parseLong(result);
              
        return answer;
    }
}
profile
개발자 성장일기

0개의 댓글