본문 바로가기

프로그래머스

프로그래머스 - 콜라츠 추측

내 코드 - 재귀함수 사용

class Solution {
int cnt = 0;

public int solution(int num) {
int answer = circle(num);
return answer;
}

/**
* 재귀함수 사용
*
* 계산과정에서 cricle의 매개변수가
* int 범위를 벗어날 수가 있다.
*/
public int circle(long num) {
if (num == 1) {
return cnt >= 500 ? -1 : cnt;
} else {
if (num % 2 == 0) {
circle(Long.valueOf(num) / 2);
} else {
circle(Long.valueOf(num) * 3 + 1);
}

cnt++;
}

return cnt >= 500 ? -1 : cnt;
}
}