[programmers] 콜라츠 추측 (java) -1level

2022. 2. 25. 10:47Algorithm/Programmers

문제 설명 

 

 

문제 해결

 

입력받은 num의 타입을 long으로 해주어야 한다.

타입을 바꾸지않고 진행하게 되면 int 타입을 넘어 오버플로우가 발생한다. (-1을 한번 거치게 된다.)

제한 사항을 염두하고 풀이에 집중하자.

public class 콜라츠추측 {
    public int solution(long num) {
        // 입력받은 num 을 long 으로 타입을 바꿔줘야한다.
        int cnt = 0;
        while(num != 1){
            if(num % 2 == 0) num /= 2;
            else num = num * 3 + 1;
            cnt ++;
            if(cnt == 500){
                return -1;
            }
        }
        return cnt;
    }
}
728x90