코딩 테스트 풀이 체크리스트 |
|
2시간 내에 풀었는가? | O |
본인의 실력으로 풀었는가? | O |
코딩테스트 연습 - 정수 내림차순으로 배치하기
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이
programmers.co.kr
class Solution {
fun solution(n: Long): Long {
var arr = LongArray(n.toString().length);
var num = n;
var index = 0;
do {
arr[index] = num % 10;
num /= 10;
index++;
} while (num > 0);
arr.sortDescending();
var answer = 0L;
for (i in 0..arr.size - 1) {
answer = answer * 10 + arr[i];
}
return answer;
}
}
테스트 1 〉 | 통과 (13.54ms, 66.6MB) |
테스트 2 〉 | 통과 (13.73ms, 64.9MB) |
테스트 3 〉 | 통과 (13.72ms, 65.5MB) |
테스트 4 〉 | 통과 (13.72ms, 64.8MB) |
테스트 5 〉 | 통과 (13.82ms, 65.1MB) |
테스트 6 〉 | 통과 (14.28ms, 64.8MB) |
테스트 7 〉 | 통과 (13.66ms, 65.1MB) |
테스트 8 〉 | 통과 (13.83ms, 64.9MB) |
테스트 9 〉 | 통과 (13.59ms, 65.2MB) |
테스트 10 〉 | 통과 (13.67ms, 65.3MB) |
테스트 11 〉 | 통과 (20.77ms, 65.5MB) |
테스트 12 〉 | 통과 (13.62ms, 65.4MB) |
테스트 13 〉 | 통과 (13.84ms, 66.1MB) |
테스트 14 〉 | 통과 (13.74ms, 65.3MB) |
테스트 15 〉 | 통과 (13.74ms, 65.7MB) |
테스트 16 〉 | 통과 (14.01ms, 64.6MB) |
배열 하나 넣고, 10으로 나누면서 나머지 넣기
그리고 나서 내림차순 정렬 후 다시 10씩 곱하면서 배열 값들 하나씩 추가해서 만들었는데
생각보다 코드도 길고, 시간도 많이 걸리는 것 같아서 다른 방법을 생각해봤다.
class Solution {
fun solution(n: Long): Long {
var arr = n.toString().toCharArray();
arr.sortDescending();
return arr.joinToString("").toLong();
}
}
테스트 1 〉 | 통과 (13.30ms, 65MB) |
테스트 2 〉 | 통과 (13.98ms, 65MB) |
테스트 3 〉 | 통과 (13.76ms, 65.3MB) |
테스트 4 〉 | 통과 (13.53ms, 65.2MB) |
테스트 5 〉 | 통과 (13.48ms, 66.4MB) |
테스트 6 〉 | 통과 (13.61ms, 65MB) |
테스트 7 〉 | 통과 (13.52ms, 65.1MB) |
테스트 8 〉 | 통과 (13.26ms, 64.9MB) |
테스트 9 〉 | 통과 (20.50ms, 64.5MB) |
테스트 10 〉 | 통과 (15.66ms, 65.7MB) |
테스트 11 〉 | 통과 (18.56ms, 64.8MB) |
테스트 12 〉 | 통과 (13.83ms, 65.4MB) |
테스트 13 〉 | 통과 (15.75ms, 65.3MB) |
테스트 14 〉 | 통과 (13.35ms, 65.3MB) |
테스트 15 〉 | 통과 (14.27ms, 64.5MB) |
테스트 16 〉 | 통과 (14.05ms, 65.2MB) |
이번에는 char배열로 만들어서 내림차순 정렬 후 그대로 String으로 합친 것을 Long형으로 바꾸는 것으로 했는데
이것도 시간복잡도는 비슷해서 의아함
그래도 새로운 방법을 찾은걸로 만족..
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 - 음양 더하기 (1단계) (0) | 2022.04.05 |
---|---|
[kotlin] 프로그래머스 - 자연수 뒤집어 배열로 만들기 (1단계) (0) | 2022.04.05 |
[kotlin] 프로그래머스 - 정수 제곱근 판별 (1단계) (0) | 2022.04.04 |
[Java] 프로그래머스 - 없는 숫자 더하기 (1단계) (0) | 2022.04.04 |
[kotlin] 프로그래머스 - 제일 작은 수 제거하기 (1단계) (0) | 2022.04.04 |