프로그래머스
정수 내림차순으로 배치하기
네스이
2022. 7. 18. 21:12
https://school.programmers.co.kr/learn/courses/30/lessons/12933
문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
문제 풀이
import java.util.*;
class Solution
{
public long solution(long n)
{
long answer = 0;
int digit = 0;
ArrayList<Long> list = new ArrayList<Long>();
//n을 10으로 나눈 나머지를 list에 저장
while(n != 0)
{
list.add(n % 10);
n /= 10;
digit++;
}
//list 내림차순으로 정렬
list.sort(Collections.reverseOrder());
while(digit != 0)
{
//answer에 list 0번째부터 size()개수까지 * 10의 (자릿수 - 1) 승을 더한다.
answer += list.get(list.size() - digit) * (long)Math.pow(10, digit - 1);
digit--; //자릿수 하나씩 낮추기
}
return answer;
}
}