본문 바로가기
프로그래머스/[프로그래머스 - JAVA] Lv.1

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

by 코딩하는 흰둥이 2023. 3. 27.


  • 내 풀이
class Solution {
    public int solution(int num) {
        int answer = 0;
        
        // 숫자가 너무 커지면 int 형에서 오버플로우가 일어난다
        long check = num;
        for (int i = 0; i < 500; i++) {
            if(check == 1){
                answer = i;
                break;
            }

            if(check % 2 ==0){
                check /= 2;
                answer++;
            } else if (check != 1 && check % 2 == 1) {
                check = (check * 3) + 1;
            }

        }
        if(check > 1){
            answer = -1;
        }
        
        return answer;
    }
}

if의 난발이다....

 

  • 다른 사람 풀이
class Solution {
    public int solution(long num) {
        int answer = 0;

        while(num != 1){
            answer++;
            if(answer==500)
                return -1;
            if(num%2==0){
                num/=2;
            }else{
                num=num*3+1;
            }
        }
        return answer;
    }
}

 

댓글