[프로그래머스] Level1. 콜라츠 추측

Benjamin·2023년 3월 7일
0

프로그래머스

목록 보기
38/58

내 풀이

테스트케이스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타입을 쓰는걸 습관들이자!!!

0개의 댓글