[Programmers] 정수 내림차순으로 배치하기 - JAVA

Lee 🧙🏻‍♂️·2021년 8월 27일
0
post-thumbnail

📄 문제 설명

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

📑 제한 조건

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

📇 입출력 예

nreurn
118372873211

👨🏻‍💻 내가 작성한 코드

import java.util.*;
class Solution {
    public long solution(long n) {
        long answer = 0;     
	ArrayList<Long> list = new ArrayList<>();
	
	while(n >0) { // 자릿수 뽑아오기
	    list.add(n % 10);
	    n /= 10;
	} 
	     
	 list.sort(Comparator.naturalOrder()); //오름 차순 정렬
	 for(int i = 0; i < list.size(); i++) {
	    answer += list.get(i) * (long)Math.pow(10, i);
	  }
	  return answer;
    }
}

👨🏻‍🏫 코드 풀이

  • list.sort(Comparator.naturalOrder()) 오름 차순으로 바꾸면
    [1,1,2,3,7,8]순으로 list에 담기게 된다.
  • answer += list.get(i) * (long)Math.pow(10, i)
    • Math.pow(10, i)는 10을 i만큼 거듭 제곱을 해주는 식.
    • 그러면 answer += 1 1, 1 10, 2 * 100 ... 으로 계산되서 1의 자리부터 차곡차곡 쌓이게 된다.
profile
더 나은 개발자가 되기 위해 기록합세!🧙🏻‍♂️

0개의 댓글