함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
n은 1이상 8000000000 이하인 자연수입니다.
| n | return |
|---|---|
| 118372 | 873211 |
import java.util.*;
class Solution {
public long solution(long n) {
long answer = 0;
//숫자를 문자열로 변경
String str = Long.toString(n);
//동적배열(list) 선언
ArrayList<Character> list = new ArrayList<Character>();
//list에 문자열의 값들을 하나씩 삽입
for(int i=0;i<str.length();i++){
list.add(str.charAt(i));
}
//내림차순 정렬
list.sort(Comparator.reverseOrder());
//list를 다시 문자열로 변환
String tmp = "";
for(int i=0;i<list.size();i++){
//list의 값들을 하니씩 가져와서 문자열에 더하기
tmp += list.get(i);
}
//문자열을 정수로 변환
answer = Long.parseLong(tmp);
return answer;
}
}
int n = 123456;
//1. String.ValueOf()
String str = Sring.ValueOf(n);
//2. Integer.toString()
String str = Integer.toString(n); //정수->문자열
String str = Long.toStrign(n); //Long -> 문자열
String str = Array.toString(n); //배열 -> 문자열
//3. ""+숫자
String str = "" + n;
String str = "123456"l=;
//str의 길이만큼 배열 생성
char[] arr = new char[str.length()];
//한글자씩 배열에 삽입
for (int i = 0; i < str.length(); i++) {
arr[i] = str.charAt(i);
}
String str = "123456";
//문자열 -> 배열로 변환
char[] arr = str.toCharArray();
https://hianna.tistory.com/569
여기가 정리가 잘 되어 있어서 참고하면 될 것 같다.
String str = "123456";
//문자열 -> 정수
int intValue = Integer.parseInt(str);
//문자열 -> Long
long longValue = Long.parseLong(str);