문제 출처 - Programmers
문제는 여기
[풀이]
1. 길이를 구하기 위해 입력받은 정수를 문자열로 만들어준다.
2. 각 자리를 잘라서 배열에 담아준다.
3. 2. 에서 구해진 배열을 오름차순으로 정렬한다.
4. 3. 에서 오름차순으로 정렬된 배열을 역순으로 ans에 추가해준다.
5. 4. 에서 구한 ans를 Long.parseLong()을 사용해서 long형으로 형 변환 후 리턴해준다.
[접근]
1. 입력되는 숫자를 문자로 바꿔 각 자리를 쪼개 준 후 내림차순으로 정렬해서 리턴해주면 되겠다고 생각하였다.
[코드]
import java.util.*;
class Solution {
public long solution(long n) {
// 길이를 구하기 쉽게 문자열로 변경
String str = n + "";
// 정렬해서 문자열로 만들기 위한 문자열 초기화
String ans = "";
// 각 자리를 잘라서 정렬하기 위한 배열
char[] arr = new char[str.length()];
// 잘라서 배열에 값을 담아주기
for (int i = 0; i < str.length(); i++) {
arr[i] = str.charAt(i);
}
// 오름차순으로 정렬
Arrays.sort(arr);
// 오름차순 정렬된 것을 뒤에서부터 값을 구해서 내림차순으로 바꿔줌
for (int i = arr.length - 1; i >= 0; i--) {
ans += arr[i];
}
// Long형으로 바꿔서 리턴
return Long.parseLong(ans);
}
}
'문제 풀이 > Programmers' 카테고리의 다른 글
[프로그래머스] 정수 제곱근 판별 (JAVA) (0) | 2022.05.24 |
---|---|
[프로그래머스] 약수의 합 (JAVA) (0) | 2022.05.23 |
[프로그래머스] 등굣길 (JAVA) (0) | 2022.05.20 |
[프로그래머스] 구명보트 (JAVA) (0) | 2022.05.17 |
[프로그래머스] 핸드폰 번호 가리기 (JAVA) (0) | 2022.05.15 |