문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n | return |
118372 | 873211 |
import java.util.*;
class Solution {
public long solution(long n) {
//long 타임 변수 n을 Long.toString(n).toCharArray()을 사용해서
//하나씩 잘라 Char[] 타입 배열 arr에 저장
char[] arr = Long.toString(n).toCharArray();
//arr정렬
Arrays.sort(arr);
//long 타입으로 반환할 answer을 0으로 초기화 선언
long answer = 0;
//i를 0이 되기까지 for문 반복
for(int i = arr.length - 1; i >= 0; i--){
//answer에 input[i] - '0'을 함으로써
//정수 배열에 문자열 숫자를 넣음
answer += arr[i] - '0';
//answer *= 10 때문에 input이 118372면 8732110이 되니까
//anser에 10을 곱해 다음 자릿수를 더해줄 수 있도록 설정
answer *= 10;
}
//여기서 answer / 10을 해주어야 함
// answer/10한 값을 return을 사용하여 반환
return answer / 10;
}
}
'Coding Test > 프로그래머스' 카테고리의 다른 글
29 Java - 같은 숫자는 싫어 (0) | 2021.07.26 |
---|---|
28 Java - 두 개 뽑아서 더하기 (0) | 2021.07.26 |
26 Java - 문자열 내림차순으로 배치하기 (0) | 2021.07.25 |
25 Java - 정수 제곱근 판별 (0) | 2021.07.25 |
24 Java - 자연수 뒤집어 배열로 만들기 (0) | 2021.07.25 |