문제설명 :
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한사항 :
n은 1이상 8000000000 이하인 자연수입니다.
int, long, String 형변환과 Join 메소드 활용하여 문제 해결하였습니다. 조건문과 합을 구하는 경우에 타입에 유의해서 해결하면 됩니다.
class Solution {
public long solution(long n) {
String[] str = Long.toString(n).split("");
// 매개변수 n을 String 문자열로 변환하고,
// split 메소드로 나눈 값을 str 배열에 입력한다.
String s = "";
// sort 메소드 x 직접풀이 해보자
for(int i=0; i<str.length; i++){
for(int j=0; j<str.length; j++){
if(Integer.parseInt(str[j]) < Integer.parseInt(str[i])){
// 반복문 돌며 str[i]가 str[j]보다 큰경우 조건문 제시
s = str[i];
str[i] = str[j];
str[j] = s;
// 0번째 인덱스부터 순차적으로 돌며 큰수를 -1 인덱스로 이동시킨다.
}
}
}
long answer = Long.parseLong(String.join("", str));
// join 메소드를 사용하여 str배열의 문자들을 한 문자열로 만들고,
// 해당 값을 Long 타입으로 변환하고 return한다.
return answer;
}
}