테스트케이스3이 계속 틀렸다.
-1 이 나와야하는데, 나는 488이 출력되어서 뭐가 문제인지 모르겠어서 힌트를 찾아봤다.
class Solution {
public int solution(int num) {
int answer = 0;
long temp = num;
while(temp != 1) {
if(temp%2 == 0) temp /=2;
else temp = temp*3 +1;
answer++;
if(answer > 500) {
answer = -1;
break;
}
}
return answer;
}
}
처음에는 long타입의 변수를 사용하지않고 계산을 그대로 num에 누적했었다.
계산을 하다보면 int 타입 범위를 넘어갈때가있는데 그 부분을 고려하지 못했던것이다.
앞으로 정수가 나오면 범위를 잘 체크하고, 왠만하면 long타입을 쓰는걸 습관들이자!!!