반응형
문제
- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12933
풀이
(풀이1)
더보기
import java.util.*;
class Solution {
public long solution(long n) {
// 정수 n을 문자열로 변환하고 각 자릿수를 배열로 저장
String[] digits = String.valueOf(n).split("");
// 내림차순으로 정렬
Arrays.sort(digits, Collections.reverseOrder());
// 정렬된 숫자를 다시 하나의 문자열로 합침
StringBuilder sb = new StringBuilder();
for (String digit: digits)
sb.append(digit);
// 문자열을 long형으로 변환하여 반환
return Long.parseLong(sb.toString());
}
}
(풀이2)
더보기
import java.util.*;
class Solution {
public long solution(long n) {
long answer = 0;
ArrayList<Integer> nums = new ArrayList<>();
while (n > 0) {
long tmp = n % 10;
nums.add((int) tmp);
n /= 10;
}
nums.sort(Collections.reverseOrder());
for (int i = 0; i < nums.size(); ++i) {
answer *= 10;
answer += nums.get(i);
}
return answer;
}
}
반응형
'코딩테스트 문제집 > Programmers(Lv1)' 카테고리의 다른 글
[Programmers] Lv1: 제일 작은 수 제거하기(12935) (0) | 2025.02.10 |
---|---|
[Programmers] Lv1: 정수 제곱근 판별(12934) (0) | 2025.02.10 |
[Programmers] Lv1: 자릿수 뒤집어 배열로 만들기(12932) (0) | 2025.02.10 |
[Programmers] Lv1: 자릿수 더하기(12931) (0) | 2025.02.10 |
[Programmers] Lv1: 이상한 문자 만들기(12930) (0) | 2025.02.10 |