본문 바로가기
Algorithm & SQL/programmers

프로그래머스 JAVA <정수 내림차순으로 정렬하기>

by YoonJong 2022. 6. 18.
728x90

정수 내림차순으로 배치하기

문제 설명

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

제한 조건
  • n은 1이상 8000000000 이하인 자연수입니다.
입출력 예nreturn
118372 873211

 


풀이방법

 * 주어진 매개변수가 long 타입인 것을 잘 확인해야합니다

 

1. 길이를 구하기 위해 "" + n 을 사용해서 n을 String n 으로 만들어줍니다.

2. split 함수를 이용해서 arr 배열에 담아줍니다.

3. Arrays.sort 와 Collections.reverseOrder() 를 사용해서 오름차순으로 정렬 후 내림차순으로 다시 바꾸어줍니다.

4. 결과값을 넣어줄 String result 를 선언합니다.

5. arr 길이만큼 for문을 돌면서 result 에 arr 의 0번째 값부터 담아줍니다.

6. return 값으로 String 값을 long 타입으로 바꾸어 주어야 합니다.

 => Integer.parseInt 를 이용해서 int 값으로 바꾸어 주는것처럼 Long.parseLong을 사용해서 Long 타입으로 바꾸어줍니다.

 

 

 

import java.util.*;
class Solution {
    public long solution(long n) {
        long answer = 0;
        String s = ""+n;
        
        String [] arr = s.split("");
        Arrays.sort(arr, Collections.reverseOrder());
        
        String result = "";
        
        for(int i =0; i<arr.length; i++){
            result += arr[i];
        }
        return Long.parseLong(result);
    }
}
728x90

댓글