
실패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;
}