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

이선아·2022년 2월 11일
2

이번에도 제한 사항을 꼼꼼히 읽어야함.

제한 사항
입력된 수, num은 1 이상 8000000 미만인 정수입니다.

콜라츠 추측.cpp

#include <string>
#include <vector>

using namespace std;

int solution(int num) {
    int answer = 0;
    long number = num;
    
    while(answer < 500) {
        if(number == 1)
            return answer;
        else {
            if(number % 2 == 0) {
                number /= 2;
            }
            else {
                number = number * 3 + 1;
            }
            answer++;
        }
    }
    return -1;
}

while문 500 이하로 돌리면서,
1. number이 1이 아닐때
1-1. number가 짝수이면 2로 나누고
1-2. 홀수라면 3을 곱하고 1을 더한다.
위 else 문이 돌아갈 때는 1-3. answer 값을 1씩 올려준다. (answer++)

2. 그러다 number가 1이 되면 리턴을 해주고, 3. 횟수가 500번이 넘어가면 while문을 빠져나와 리턴 -1을 해주는데,

제한 사항이 있기 때문에 int 형 num을 long 형 number 변수에 담아 진행해준 것이다. 끗

profile
깃허브 놀러오세용 -> Tistory로 블로그 이전합니다.

0개의 댓글