프로그래머스/level1
[Java][프로그래머스] 정수 내림차순으로 배치하기
wave_m
2020. 10. 28. 09:53
728x90
문제 설명 :
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건 :
- n은 1이상 8000000000 이하인 자연수입니다.
입출력 예 :
n | return |
118372 | 873211 |
import java.util.*;
class Solution {
public long solution(long n) {
char[] input = Long.toString(n).toCharArray();
Arrays.sort(input);
long ans = 0;
for(int i = input.length -1; i>= 0 ; i--){
ans += input[i] - '0';
ans *= 10;
}
return ans/10;
}
}
알고리즘 풀이 :
1. long 타입 변수n을 Long.toString(n).toCharArray()을 사용해 하나씩 잘라서 char[] 타입 배열 input에 저장
2. Arrays.sort를 사용해서 input을 정렬
3. long 타입으로 반환할 ans를 0으로 초기화하여 선언
4. i를 0이 되기까지 for문을 반복
5. ans에 input[i] - '0'을 함으로서 정수 배열에 문자열 숫자를 넣음
6. ans에 10을 곱해 다음 자리수를 더해줄 수 있게 설정
7. ans/10한 값을 return을 사용하여 반환
- 위 과정을 반복한 ans은 마지막 ans*10 때문에 input이 118372면 8732110이 되므로 ans/10
728x90