문제: 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
class Solution {
public long solution(long n) {
String str = String.valueOf(n);
String answer = "";
for (int i = 9; i >= 0; i--) {
for (int j = 0; j < str.length(); j++) {
if (str.charAt(j) - '0' == i) {
answer += i;
}
}
}
return Long.parseLong(answer);
}
}
n = 118372 라면,
str = "118372"
이제 숫자를 9부터 0까지 찾아서 순서대로 붙인다.
for (int i = 9; i >= 0; i--)
import java.util.Arrays;
class Solution {
public long solution(long n) {
String str = String.valueOf(n);
char[] arr = str.toCharArray();
Arrays.sort(arr);
StringBuilder sb = new StringBuilder(new String(arr));
sb.reverse();
return Long.parseLong(sb.toString());
}
}
문자열을 문자 배열로 바꾼다
char[] arr = str.toCharArray(); // ['1', '1', '8', '3', '7', '2']
그리고 정렬한다. (기본 정렬은 오름차순)
Arrays.sort(arr);
큰 수부터 작은 수 순서로 정렬하려면 뒤집는다
StringBuilder sb = new StringBuilder(new String(arr));
sb.reverse();