C++:: 프로그래머스 < 콜라츠 추측 >

jahlee·2023년 8월 2일
0

프로그래머스_Lv.1

목록 보기
53/75
post-thumbnail

콜라츠 추측이라는 것을 직접 확인하는 문제이다. 주어진 조건에 맞춰 코드를 짜면 되는데 주의해야 할 점은 int형에서 오버플로우가 나는 경우에 대해 고려해주어야 한다는 점이다.

#include <string>
#include <vector>
using namespace std;

int solution(int num) {
    int answer = 0;
    while (num != 1) {
        if (answer > 500) return -1;
        if (num % 2 == 0) num /= 2;// 짝수일때
        else if (num % 2 == 1) num = num*3 + 1;// 홀수일때
        // if else 만으로 하면 오버플로우가 발생했을때 예외가 생긴다.
        answer++;
    }
    return answer;
}

0개의 댓글