본문 바로가기
코딩테스트 문제집/Programmers(Lv1)

[Programmers] Lv1: 정수 내림차순으로 배치하기(12933)

by cogito30 2025. 2. 10.
반응형

문제

- 링크: 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;
    }
}
반응형