프로그래머스 level 1 : 정수 내림차순으로 배치하기

 

  • 문제설명

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

  • 제한조건

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

 

  • 입출력 예

 

문제풀이

class Solution {
    public long solution(long n) {
        long answer = 0;
        String nstr = String.valueOf(n);
        char [] narr = nstr.toCharArray();
        char temp;
    
        for (int i=0; i<narr.length-1; i++){
            for(int j=i+1; j<narr.length; j++){
                if(narr[i] < narr[j]){
                    temp = narr[i];
                    narr[i] = narr[j];
                    narr[j] = temp;
                }
            }
        }
        nstr = "";
        for(int i=0; i<narr.length; i++){
            nstr +=narr[i];
        }
        answer = Long.parseLong(nstr);
        
        return answer;
    }
}

 

풀이설명

String.valueOf() 메소드를 사용하여 파라미터로 넘어온 정수를 String형으로 변환 후 toCharArray() 메소드를 사용하여 배열에 담는다.

sorting을 위해 char형 변수를 선언 후 이중for문을 사용하여 배열을 정렬한다.

정렬한 배열의 값을 String 변수에 값을 넣어준 후 Long.parseLong()함수를 사용하여 long형으로 변환 후 리턴한다.

+ Recent posts