백엔드개발자/알고리즘관련
하나의 정수 각 자리수를 큰 순서대로
보혀니
2022. 4. 28. 17:16
함수 solution은 정수 n을 매개변수로 입력받습니다.
n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요.
예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
import java.util.Arrays;
import java.util.Scanner;
class Solution {
public long solution(long n) {
long answer = 0;
// String으로 바꿔서 char 배열만들어서 sort할 예정
// String으로 바꾸기
String str = String.valueOf(n);
char[] cArr = new char[str.length()];
// char 배열로 넣기
for(int i=0; i<cArr.length; i++) {
cArr[i] = str.charAt(i);
}
// 정렬 후 뒤집기
Arrays.sort(cArr);
String StrRev = new StringBuilder(new String(cArr)).reverse().toString();
// Long으로 다시 변환
answer = Long.parseLong(StrRev);
return answer;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long n = sc.nextLong();
Solution s = new Solution();
System.out.println(s.solution(n));
}
}
뒤집기 때 reverse 사용하지 않고
배열 뒤에서 부터 차례대로 하나하나
answer+= 해서 쌓아주는 방법도 있음