문제
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

✏️ 내 풀이
class Solution {
public long solution(long n) {
long answer = 0;
int index = String.valueOf(n).length();
int[] num = new int[index];
// 숫자를 배열에 저장
for (int i = 0; i < index; i++) {
num[i] = (int) (n % 10);
n /= 10;
}
// 배열 정렬 (버블 정렬 방식)
for (int i = 0; i < index - 1; i++) {
for (int j = 0; j < index - 1 - i; j++) {
if (num[j] < num[j + 1]) {
int temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
}
}
// 배열을 다시 숫자로 변환
for (int i = 0; i < index; i++) {
answer = answer * 10 + num[i];
}
return answer;
}
}
버블 정렬 방식을 활용하여 문제를 풀었다.
✒️회고
- 간단한 문제처럼 보였지만 막상 코딩을 해보니 일일이 수작업을 해서 그런지 코드가 굉장히 길어졌다 😭
- 1달뒤에 봐도 쉽게 무슨 코드인지 알 수 있는것이 가독성이 좋은 코드라고 할 수 있다.
그만큼 짧은 시간에 이해할 수 있게 만드는 것도 능력!! 🥇 🥇
- 어떻게 더 짧게 작성할 수 있을지 고민해봐야 겠다
'코딩테스트 > Java' 카테고리의 다른 글
[Java]숫자 문자열과 영단어 (0) | 2025.03.25 |
---|---|
[Java]행렬의 덧셈 (0) | 2025.03.13 |
[Java]정수 제곱근 판별(Math함수) (0) | 2025.03.04 |
[Java]자연수 뒤집어 배열로 만들기(valueOf()사용) (0) | 2025.03.04 |
[Java]가위 바위 보 게임 (1) | 2025.02.11 |