공부기록/프로그래머스

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

메델 2023. 8. 29. 19:50
class Solution {
    public int solution(long num) {
        int answer = 0;
        
        if(num == 1){
            answer = 0;
        }
        
        
        while(num != 1){
            if(num%2 == 0){
                num = num/2;
                answer++;
            }else{
                num = num*3+1;
                answer++;
            }
            
            if(answer==500){
                answer = -1;
                break;
            }
        }
        
        return answer;
    }
}

 

테스트 3에서 오류가 났다면 num*3+1 반복하는 과정에서 int형 범위를 초과할 수 있다는 것을 생각하자.

int형보다 long 타입을 선언하여 오버플로우를 막아주자.