💬 문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰 것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를 들어 n이 118372면 873211을 리턴하면 됩니다.
🚫 제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
📢 입출력 예
📃 제출 코드
import java.util.Arrays;
import java.util.Comparator;
class Solution {
public long solution(long n) {
char[] chArr = String.valueOf(n).toCharArray();
Character[] charArr = new Character[chArr.length];
for (int i = 0; i < charArr.length; i++) {
charArr[i] = chArr[i];
}
Arrays.sort(charArr, new Comparator<Character>() {
@Override
public int compare(Character o1, Character o2) {
return o2 - o1;
}
});
String str = "";
for (char ch : charArr) {
str += ch;
}
long answer = Long.parseLong(str);
return answer;
}
}
✏ 해결방법 & 배운점
접근방법
- 정수 `n`을 문자 배열로 변환
- `compare` 메서드를 오버라이딩 하여 내림차순으로 정렬
- 문자배열을 문자열로 변경한 뒤 다시 `long` 타입으로 변환
++) 람다를 이용하였으면 더욱 간결하게 코드를 작성할 수 있었을거 같습니다.
'PS > LV.1 프로그래머스 문제' 카테고리의 다른 글
[프로그래머스] LV.1 짝수와 홀수 - 자바 [8/80] (0) | 2024.07.16 |
---|---|
[프로그래머스] LV.1 정수 제곱근 판별 - 자바 [7/80] (0) | 2024.07.16 |
[프로그래머스] LV.1 자연수 뒤집어 배열로 만들기 - 자바 [5/80] (0) | 2024.07.15 |
[프로그래머스] LV.1 자릿수 더하기 - 자바 [4/80] (0) | 2024.07.15 |
[프로그래머스] LV.1 문자열을 정수로 바꾸기 - 자바 [3/80] (0) | 2024.07.15 |