콜라츠 추측이라는 것을 직접 확인하는 문제이다. 주어진 조건에 맞춰 코드를 짜면 되는데 주의해야 할 점은 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;
}