[알고리즘과 자료구조] JAVA - 정수 내림차순으로 배치하기
문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다.
n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
입력 : 118372
출력 : 873211
소스 설명
1. 입력받은 정수를 문자열로 형변환한다.
2. 문자열을 배열로 삽입한다.
3. 배열을 오름차순으로 정렬한다.
4. 문자열을 더하기 위한 StringBuffer 생성
5. 내림차순으로 정렬 for~
6. Long 타입으로 변환하여 리턴
class Solution {
public long solution(long n) {
long answer = 0;
String str = String.valueOf(n); // 입력받은 정수를 문자열로 형변환
char[] aa = str.toCharArray(); // 문자열을 배열로 삽입
Arrays.sort(aa); // 오름차순으로 정렬
StringBuffer sb = new StringBuffer(); // 문자열을 더하기 위한 stringBuffer 생성
for( int i = aa.length-1; i>=0; i-- ) { // 내림차순으로 정렬
sb.append(aa[i]);
}
answer = Long.parseLong(sb.toString()); // Long 타입으로 형변환 후 리턴
return answer;
}
}