정수 내림차순으로 배치하기
문제: https://programmers.co.kr/learn/courses/30/lessons/12933
1. 문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
2. 나의 코드
10으로 나눈 나머지를 ArrayList에 저장을 한 후, sort!
sort된 ArrayList를 10을 곱하면서 더하면 역순으로 숫자가 만들어진다.
import java.util.*;
class Solution {
public long solution(long n) {
long answer = 0;
ArrayList <Long> arr = new ArrayList<>();
while(n > 0){
arr.add(n%10);
n/=10;
}
Collections.sort(arr);
long temp;
for(int i=0;i<arr.size();i++){
temp = arr.get(i);
for(int j=0;j<i;j++){
temp*=10;
}
answer += temp;
}
return answer;
}
}
'Computer Science > 알고리즘 문제풀이' 카테고리의 다른 글
Baek Joon _백준 1065> brute force > #47 한수 (0) | 2019.06.02 |
---|---|
Baek Joon _백준 1010> DP(조합) > #46 다리놓기 (0) | 2019.05.25 |
Programmers > 연습문제 > #44 자릿수 더하기 (0) | 2018.12.24 |
Programmers > 스택/큐(Stack/Queue) > #43 주식가격 (0) | 2018.12.14 |
Baek Joon _백준 2156> DP > #42 포도주 시식 (0) | 2018.12.12 |