https://school.programmers.co.kr/learn/courses/30/lessons/12933
문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n return
118372 873211
import java.util.*;
class Solution {
public long solution(long n) {
long answer = 0;
String s = Long.toString(n);
ArrayList<Character> list = new ArrayList<>();
for(int i = 0; i<s.length(); i++){
list.add(s.charAt(i));
}
Collections.sort(list, Collections.reverseOrder());
StringBuilder sb = new StringBuilder();
for(int i=0; i<list.size();i++){
sb.append(list.get(i));
}
answer = Long.parseLong(sb.toString());
return answer;
}
}
범위가 크기 때문에 String을 사용하면 타임아웃에 걸린다. 그래서 StringBuilder로 풀어주어야함 !