function solution(num) {
if(num === 1){
return 0;
} else{
let count = 0;
while(num !== 1){
// 만약 연산을 500번 진행해서 count가 500이 될 때까지 while문이 종료되지 않으면
// -1을 반환한다.
if(count === 500){
return -1;
}
// num이 짝수인 경우와 홀수인 경우 분기 처리
if(num % 2 === 0){
num /= 2;
} else {
num = num * 3 + 1;
}
// 한번 연산을 진행하면 count를 증가시킨다.
count++;
}
// 만약 while문을 빠져나오면 그 때의 count를 출력한다
return count;
}
}
이번 문제는 문제만 이해하면 그대로 코드로 옮겨주기만 하면 된다.
분기처리를 신경 써주는 것이 관건인 것 같고, 분기 처리의 순서를 잘 짜는 것도 주요 포인트라고 생각한다.