문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n | return |
118372 | 873211 |
초기 코드
class Solution {
public long solution(long n) {
long answer = 0;
return answer;
}
}
정답 코드
import java.util.Arrays;
class Solution {
public long solution(long n) {
long answer=0;
String[] arr = String.valueOf(n).split("");
Arrays.sort(arr);
String str = new String("");
for(int i=arr.length-1; i>=0; i--) str += arr[i];
answer=Long.parseLong(str);
return answer;
}
}
코드 설명
현재 long타입인 n을 문자열로 바꾸어(String.valueOf(n)) 자른 후(split("")) 배열에 넣어준다.
이후 sort 메서드를 통해 오름차순으로 정렬한다.
오름차순으로 정렬되어 있기 때문에 끝방부터 0번방까지 순서대로 문자열로 만든다. (str += arr[i]) 문자열은 +기호로 뒤에 붙일 수 있다.
문자열을 다시 long타입으로 바꾼다. Long.parseLong(str)
'programmers-코딩테스트 연습 > Level 1. 자바' 카테고리의 다른 글
2021-07-14 / 행렬의 덧셈 (2) | 2021.07.14 |
---|---|
2021-07-14 / 문자열 내 마음대로 정렬하기 (0) | 2021.07.14 |
2021-07-13 / x만큼 간격이 있는 n개의 숫자 (0) | 2021.07.13 |
2021-07-12 / 완주하지 못한 선수 (0) | 2021.07.12 |
2021-07-12 / 모의고사 (0) | 2021.07.12 |