오늘의하루

[프로그래머스 1단계 - JAVA] 정수 내림차순으로 배치하기 본문

JAVA

[프로그래머스 1단계 - JAVA] 정수 내림차순으로 배치하기

오늘의하루_master 2022. 9. 16. 16:08
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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

풀이

class Solution {
    public long solution(long n) {
        long answer = Long.parseLong(method1(n));
        return answer;
    }
    static String method1(long n){
        int[] arr = new int[Long.toString(n).length()];
        int i = 0;
        while(n > 0){
            arr[i] = (int)(n % 10);
            i++;
            n = n / 10;
        }
        return method2(arr);
    }
    static String method2(int[] arr){
        for(int i = 1; i < arr.length; i++){
            for(int j = i; j > 0; j--){
                if(arr[j] > arr[j-1]){
                    int temp = arr[j];
                    arr[j] = arr[j-1];
                    arr[j-1] = temp;
                }else{
                    break;
                }
            }
        }
        return method3(arr);
    }
    static String method3(int[] arr){
        String str = "";
        for( int i = 0; i < arr.length; i++){
            str = str + arr[i];
        }
        return str;
    }
}
  • method1은 입력받은 n을 배열로 만든다.
  • method2는 배열을 내림차순으로 정리한다.
  • method3는 해당 배열을 문자열로 바꾼다.

Comments