Algorithm/Programmers

Programmers / Level 1 / 정수 내림차순으로 배치하기

Gyuri 2022. 6. 27. 00:02

[문제설명]

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

[제한사항]

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

[입출력 예]

n return
118372 873211

 

내가 작성한 코드

import java.util.Arrays;
import java.util.Collections;

class Solution {
    public long solution(long n) {
        long answer = 0;

        String[] arr = String.valueOf(n).split("");
        Arrays.sort(arr, Collections.reverseOrder()); // 내림차순

        String change = "";
        for(int i=0; i<arr.length; i++) {
            change += arr[i];            
        }
        answer = Long.parseLong(change);

        return answer;
    }
}

String.valueOf(n).split("") 를 통해 long 타입의 n을 String 배열로 변환해준 후,

내림차순으로 정렬해줬다.

 

change 변수를 하나 생성해 arr에 있는 값들을 넣어주고,

String 형태의 change 변수 값을 Long.parseLong(change)를 통해 long 타입으로 변환해준 후 return

 

Long.parseLong 메소드가 있는 줄도 모르고, Integer.parseInt 메소드를 사용한 후, long으로 캐스팅 하는 실수를 해서 계속 실패가 떠서 왜 안되지?? 하고있었다. 

 

열공하자 !..