· 문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
· 제한 조건
n은 1이상 8000000000 이하인 자연수입니다.
· 입출력 예
n | return |
118372 | 873211 |
· Thinking 1
1. ArrayList에 하나씩 담은 후 sort
2. 다시 reverse
· 완성 코드
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public long solution(long n) {
String num = String.valueOf(n);
ArrayList<String> temp = new ArrayList<String> (num.length());
for (int i =0; i < num.length(); i++) {
temp.add(Character.toString(num.charAt(i)));
}
num = "";
Collections.sort(temp);
Collections.reverse(temp);
for (int i = 0; i < temp.size(); i++) {
num += temp.get(i);
}
System.out.println(num);
return Long.parseLong(num);
}
}
· 문제 출처
https://programmers.co.kr/learn/courses/30/lessons/12933
'Algorithm > Programmers' 카테고리의 다른 글
제일 작은 수 제거하기 (0) | 2019.05.31 |
---|---|
정수 제곱근 판별 (0) | 2019.05.31 |
자연수 뒤집어 배열로 만들기 (0) | 2019.05.31 |
자릿수 더하기 (0) | 2019.05.31 |
이상한 문자 만들기 (0) | 2019.05.31 |
댓글