<문제>
<나의 풀이>
class Solution {
public int solution(int num) {
int answer = 0;
while(true) {
if(num==1) {
answer=0; break;
}
if(num%2==0) num = even(num);
else num = odd(num);
answer++;
if(num==1) {
break;
}
if(answer==450) {
answer = -1;
break;
}
}
return answer;
}
public static int even(int n) {
return n/2;
}
public static int odd(int n) {
return (n*3)+1;
}
}
-comment
문제에서는 연산 횟수 500회라고 되어있지만 실제로 정수 626331는 488회로 결과값을 가져오고 있어서 연산 횟수를 450회로 수정하였다.
정수 n이 1인 경우에는 결과값이 1이어야 해서 따로 예외처리 해두었다.(예외처리 안할 시 테스트 13번 실패)