정수 num이 주어질 때 다음 작업을 반복하는 문제이다.
num이 짝수 → num / 2num이 홀수 → num * 3 + 1num이 1이 되기까지 몇 번의 작업이 필요한지를 구하는 것
단, 500번을 반복해도 1이 되지 않으면 -1을 반환한다.
while문을 사용해 num이 1이 될 때까지 반복한다.
반복할 때마다:
2로 나눈다.3을 곱하고 1을 더한다.-1을 반환한다.class Solution {
public int solution(long num) {
if (num == 1) return 0;
int answer = 0;
while (num != 1) {
if (num % 2 == 0) {
num /= 2;
} else {
num = (num * 3) + 1;
}
answer++;
if (answer == 500) {
return -1;
}
}
return answer;
}
}
