Hayden's Archive

[알고리즘] 프로그래머스 : 정수 내림차순으로 배치하기 본문

Algorithm

[알고리즘] 프로그래머스 : 정수 내림차순으로 배치하기

_hayden 2020. 5. 15. 22:33

알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12933

 

코딩테스트 연습 - 정수 내림차순으로 배치하기

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

programmers.co.kr

 

내가 작성한 코드

long형을 String형으로 바꿨고 long[] 배열을 임시로 만들어 거기에 substing을 통해 n번씩 잘라진 String형을 다시 long형으로 바꾸어 넣었다. 그리고 Arrays 클래스의 sort() 메소드로 오름차순으로 정렬하였고(이 클래스에 내림차순으로 정렬하는 메소드는 없다. 다른 클래스에는 있을지도...) 마지막 인덱스부터 시작해서 큰값부터 뽑아내어 answer에 10^n배를 하여 더해줬다.

import java.util.Arrays;
class Solution {
    public long solution(long n) {
        long answer = 0;
        String temp = Long.toString(n);
        long[] tList = new long[temp.length()];
        for(int i = 0; i < tList.length; i++) {
            tList[i] = Long.parseLong(temp.substring(i, i+1));
        }
        Arrays.sort(tList);
        for(int i = tList.length-1; i >= 0; i--) {
            answer += tList[i] * Math.pow(10, i);
        }
        return answer;
    }
}