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

꿈별·2023년 12월 6일
0

문제풀이

목록 보기
34/52

문제


풀이

오답

  • 실패1
    while (1 != num && 500 > answer)로 돌렸더니 시간 초과
    -> for문으로 수정

  • 실패2
    오버플로우 때문에 실행 실패
    -> 입력받은 num을 long long형으로 변환함


정답

#include <string>

using namespace std;

int solution(int num) {
    long long n = num;
    int answer = 0;
    if (0 == n)
    {
        return 0;
    }

    for (int i = 0; i < 500; i++)
    {
        if (1 == n)
        {
            return answer;
        }
        n = (0 == n % 2) ? n / 2 : 3 * n + 1;
        answer++;
    }
    return -1;
}

0개의 댓글