본문 바로가기

Computer Science/알고리즘 문제풀이

Programmers > 연습문제 > #45 정수 내림차순으로 배치하기

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

 

문제: https://programmers.co.kr/learn/courses/30/lessons/12933

 

 

 

 

1. 문제 설명

 

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

 

 

2. 나의 코드

 

10으로 나눈 나머지를 ArrayList에 저장을 한 후, sort!

sort된 ArrayList를 10을 곱하면서 더하면 역순으로 숫자가 만들어진다.

 

import java.util.*;

class Solution {
  public long solution(long n) {
      long answer = 0;
      ArrayList <Long> arr = new ArrayList<>();
      
      while(n > 0){
          arr.add(n%10);
          n/=10;
      }
      Collections.sort(arr);
      long temp;
      for(int i=0;i<arr.size();i++){
          temp = arr.get(i);
          for(int j=0;j<i;j++){
             temp*=10;
          }
        answer += temp;
      }
      return answer;
  }
}