본문 바로가기
OLD_알고리즘/Programmers - 알고리즘

Programmers ] Level 1 - 콜라츠 추측

by 달승 2021. 1. 6.

 

 

틀린코드

#include <string>
#include <vector>

using namespace std;

int solution(int num) { 
    int answer = 0, count = 0;
    
    while(num > 1){
        
        if(num % 2 == 0){
            num = num / 2;
            ++count;
        }else{
            num = (num * 3) + 1;
            ++count;
        }
        
        if (count >= 500){
            //answer = -1;
            //break;
            return -1;
        }else{
            answer = count;
        }
    }
    
    return answer;
}

> count 값이 ++이 안 되는 것으로 추측하건대 계산된 num값이 int 자료형 범위를 넘었을 때, count가 멈추는 것 같다.

 

 

 

🌱 정답코드 

** int가 아닌 long long 형으로 바꿔주니 맞았다.

 

 

댓글