정수 내림차순으로 배치하기
문제설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
매개변수 값을 한 자리씩 뽑기 위해 생각한 방법은 2가지 였다
둘 중에 2번이 코드에서 더 간결할거 같아서 2번을 선택했다.
다음으로 내림차순 정렬을 이중 for문으로 해본 결과,
문제 테스트에는 문제가 없었지만 속도가 느리다는 느낌을 받아서 Java에서 제공하는 메서드를 사용을 했다(Arrays.sort, Collections.reverseOrder())
결과는 확실히 제공하는 메서드가 빨랐다.


코드
import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; class Solution { public long solution(long n) { String str = Long.toString(n); Integer [] arr = new Integer[str.length()]; for(int i = 0 ; i < str.length(); i++) arr[i] = str.charAt(i) - '0'; // String to Int Arrays.sort(arr,Collections.reverseOrder()); str = ""; for(int i = 0 ; i < arr.length; i++) str += arr[i]; long answer = Long.parseLong(str); // String to Long return answer; } }