728x90
코딩 테스트 풀이 체크리스트 |
|
2시간 내에 풀었는가? | O |
본인의 실력으로 풀었는가? | O |
코딩테스트 연습 - 콜라츠 추측
1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2
programmers.co.kr
class Solution {
fun solution(num: Int): Int {
var answer = 0;
var n = num.toLong();
while (n != 1L && answer <= 500) {
answer++;
if (n % 2 == 0L) {
n = n / 2;
} else {
n = (n * 3) + 1;
}
}
return if (n == 1L) answer else -1;
}
}
테스트 1 〉 | 통과 (0.02ms, 63.2MB) |
테스트 2 〉 | 통과 (0.02ms, 62.8MB) |
테스트 3 〉 | 통과 (0.02ms, 65MB) |
테스트 4 〉 | 통과 (0.01ms, 63.1MB) |
테스트 5 〉 | 통과 (0.03ms, 63.2MB) |
테스트 6 〉 | 통과 (0.02ms, 63.8MB) |
테스트 7 〉 | 통과 (0.04ms, 62.7MB) |
테스트 8 〉 | 통과 (0.02ms, 62.9MB) |
테스트 9 〉 | 통과 (0.01ms, 63.2MB) |
테스트 10 〉 | 통과 (0.03ms, 63.8MB) |
테스트 11 〉 | 통과 (0.03ms, 61.1MB) |
테스트 12 〉 | 통과 (0.01ms, 63.6MB) |
테스트 13 〉 | 통과 (0.01ms, 63.4MB) |
테스트 14 〉 | 통과 (0.02ms, 65.5MB) |
테스트 15 〉 | 통과 (0.02ms, 60.7MB) |
테스트 16 〉 | 통과 (0.01ms, 63.4MB) |
while문으로 500번만 돌리고, n이 1이 아닐 경우에는 -1을 리턴
여기서 문제가 있었던 것은 long형과 int형은 == 비교 연산자가 안 됨.
Operator == cannot be applied to ‘Long’ and ‘Int’ in Kotlin 라는 오류가 뜨므로 숫자 뒤에 L을 붙여서 long형이라고 인식 시켜주는 역할을 함.
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 - 단체사진 찍기 (2단계) (0) | 2022.04.01 |
---|---|
[Java] 프로그래머스 - 카카오프렌즈 컬러링북 (0) | 2022.03.31 |
[kotlin] 프로그래머스 - 평균 구하기 (1단계) (0) | 2022.03.31 |
[kotlin] 프로그래머스 - 하샤드 수 (1단계) (0) | 2022.03.30 |
[kotlin] 프로그래머스 - 핸드폰 번호 가리기 (1단계) (0) | 2022.03.30 |