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

문제 설명

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

 

제한 사항

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

 

문제 풀이

Arrays.sort() 사용하면 되겠다~😎

근데 얘는 오름차순으로 배열하는 메서드이니까 for문을 사용해서 다시 배열 해주자.

1. 문자열로 전환하기 String.valueOf() 메서드 사용

2. split() 메서드 사용해서 나눈 값으로 배열 만들기

3. Arrays.sort() 사용해서 오름차순으로 배열하기

4. for문을 사용해서 내림차순으로 배열하기

5. long 타입으로 변환해서 answer에 저장하기

 

import java.util.Arrays;

public class descendingOrder {

        public long solution(long n) {
            long answer = 0;
            String str = String.valueOf(n);         //String 타입 변환
            String[] nums = str.split("");          //String 배열 만들기
            Arrays.sort(nums); //[1,1,2,3,7,8]      //오름차순으로 정렬하기
            long[] num = new long[nums.length];
            for(int i=0; i<nums.length; i++){       //내림차순으로 정렬하기
                num[i]= Long.parseLong(nums[nums.length-1-i]);
            }

            String almostanswer = "";     //거의 다왔어요! String으로 만들었다가
            for(int i=0; i<num.length;i++){
                almostanswer += num[i];
            }
            answer = Long.parseLong(almostanswer); //Long 타입으로 변환하기!
            return answer;
        }


    public static void main(String[] args) {
        descendingOrder method = new descendingOrder();
        System.out.println(method.solution(118372));
    }
}

 

 

+ Recent posts