문제 풀이 (JAVA)

import java.util.*;
class Solution {
    public long solution(long n) {
        long answer = 0;
        List<Long> longlist = new ArrayList<Long>(); // 자릿수 숫자를 저장할 리스트 선언
        while(n>0){ // n이 0이 되는순간 종료
            longlist.add(n%10); // n을 10으로 나눈 나머지는 n의 끝자리를 리턴한다.
            n /=10; // n을 10으로 나눈다. ex)끝자리가 1의 자리였다면 다음 반복문은 10의 자리가 끝자리이다.
        }
        longlist.sort(Comparator.reverseOrder()); // 리스트의 숫자를 내림차순 정렬한다.
        String num =""; // 숫자를 다시 조합하기 위한 문자열 선언
        for(Long value : longlist){
            num= num + value.toString(); // Long->String으로 변환하여 String 변수에 조합한다.
        }
        answer = Long.parseLong(num); // 조합된 String 변수를 Long 변수로 변환한다.
        
        return answer;
    }
}

주요 핵심 포인트

1. ArrayList를 사용하려면 java.util.ArrayList를 import해야 한다.

2. 숫자를 while문을 사용해 나머지로 끝자리부터 리스트에 저장하는 로직을 사용하였다.

3. List의 정렬 함수 기능 Comparator.reverseOrder()를 사용하여 내림차순 정렬을 하였다.

4. List의 순서대로 저장된 값을 Long 값을  변환하여 String으로 조합하기 위해 toString() 함수를 사용하였다.

5. 조합된 String 숫자열을 .parseLong을 사용해 Long으로 변환하였다.

'프로그래머스(JAVA)' 카테고리의 다른 글

자릿수 더하기  (0) 2022.04.16
자연수 뒤집어 배열로 만들기  (0) 2022.04.16
정수 제곱근 판별  (0) 2022.04.16
제일 작은 수 제거하기  (0) 2022.04.16
짝수와 홀수  (0) 2022.04.16

+ Recent posts