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;
}
}
'알고리즘, 코딩테스트 > 알고리즘 풀이' 카테고리의 다른 글
[프로그래머스/ 코딩테스트 연습문제] 두 정수 사이의 합 (0) | 2024.11.01 |
---|---|
[프로그래머스/ 코딩테스트 연습문제] 하샤드 수 (0) | 2024.11.01 |
[프로그래머스/ 코딩테스트 연습문제] 정수 제곱근 판별 (0) | 2024.10.31 |
[프로그래머스/ 코딩테스트 연습문제] 문자열을 정수로 바꾸기 (0) | 2024.10.30 |
[프로그래머스/ 코딩테스트 연습문제] 자연수 뒤집어 배열로 만들기 (0) | 2024.10.29 |