콜라츠 추측
풀이
class Solution {
public int solution(long num) {
int answer = 0;
while(num != 1){
if(answer >= 500){
answer = -1;
break;
}
if(num % 2 == 0){
num = num / 2;
}else{
num = (num * 3) + 1;
}
answer ++;
}
return answer;
}
}
해결과정
처음에 int num으로 설정되어 있어 신경쓰지 않고 계속 문제를 해결하는데, 626331의 문제만 해결되지 않았다. 그 이유는 int의 범위때문이었다. int는 -2,147,483,648 ~ 2,147,483,647을 가지고 있다. 이 범위 이상이면 int를 사용하면 안된다.
문제를 해결할 때 수의 범위까지 고려하여 문제를 해결해야할 것 같다.
'TIL' 카테고리의 다른 글
240510 TIL (0) | 2024.05.10 |
---|---|
240509 TIL (0) | 2024.05.10 |
240507 TIL (0) | 2024.05.08 |
240502 TIL (0) | 2024.05.02 |
240501 TIL (0) | 2024.05.01 |