
이 문제는 주어진 수가 짝수이면 2로 나누고, 홀수이면 3을 곱한 뒤 1을 더하는 과정을 반복하면서 해당 연산이 1이 될 때까지 몇 번 수행되는지를 계산하는 문제이다.
주어진 수가 1인 경우에 0, 수행된 횟수가 500번을 넘길 때까지 1이 되지 않으면 -1을 반환하여야합니다.
class Solution {
public int solution(long num) {
int count = 0;
if (num == 1) return 0;
while(true){
if (num % 2 ==0){
num /= 2;
count += 1;
}
else {
num = num *3 + 1;
count += 1;
}
if (num == 1){
break;
}
}
if(count > 500){
return -1;
}
else{
return count;
}
}
}
while(true)를 사용해서 무한 루프를 굴려주고 정수가 1이 되면 break로 반복문을 빠져나오게 만들면 되는 간단한 문제입니다.
public class Main{
public static void main(String[] args) {
Solution sol = new Solution();
int result = sol.solution(626331);
System.out.println(result);
}
}

626331은 카운트 횟숫가 500이 넘어가기 때문에 -1을 반환하는 것을 볼 수 있습니다.
