< 문제 >
풀이
- 몇번 반복문이 일어날지 모르는상황이기때문에 이런경우 for문 보다는 while반복문이 더 어울리다는 판단, 최종결과는 1이 나오니 while반복이 1보다 클 경우에만 반복문을 진행, 짝수일경우 2를나누고, 홀수 일 경우 3을곱하고 1을 더함 최종 결과가 500보다 클경우 -1 500보다 크지않은경우 기존에 숫자를 넣어줌으로써 풀이
function solution(num) {
let answer = 0;
while (num > 1) {
answer += 1;
if (num % 2 === 0) {
num = num / 2;
} else {
num = num * 3 + 1;
}
}
return answer <= 500 ? answer : -1;
}
console.log(solution(6));
console.log(solution(16));
console.log(solution(626331));