알고리즘, 코딩테스트/알고리즘 풀이

[프로그래머스/ 코딩테스트 연습문제] 정수 내림차순으로 배치하기

jiyoon0000 2024. 10. 31. 11:13

Q. 정수 내림차순으로 배치하기

A.

import java.util.*;

class Solution {
    public long solution(long n) {
        long answer = 0;
//정수를 리스트에 하나씩 넣은 다음에 내림차순 정렬 후 형변환
        List<Long> answerList = new ArrayList<>();
        
//정수 n을 10으로 나눈 나머지값 = 마지막 수를 리스트에 넣은 후에 10을 나눠서 마지막 수 제거
        while(n>0){
            answerList.add(n%10);
            n /= 10;
        }
        
//sort 정렬을 사용해 collections.reverseOrder 내림차순 정렬
//그냥 sort만 사용하면 오름차순 정렬
        answerList.sort(Collections.reverseOrder());
        
//리스트에 넣은 수들을 합치기
//answer에 10을 곱한 후에 answer 더하기
//만약 첫번째 수가 8이라면 answer은 0부터 시작이니까 answer = 0*10 +8 =8의 값이 나오고
//두번째 수가 7이면 answer = 8*10+7 =87 이런식으로 값이 하나씩 추가됨
//이렇게 마지막 수까지 넣으면 list 형태에서 정수값으로 바뀜
        for(long Answer : answerList){
            answer = answer * 10 + Answer;
        }
        return answer;
    }
}