문제 설명
제한 사항
입출력 예
n | result |
---|---|
6 | 8 |
16 | 4 |
626331 | -1 |
입출력 예 설명
문제 풀이
function solution(num) {
var answer = 0;
while (num !== 1){ //매개변수 num값이 1인지 판별하여 1이면 반복문 종료하고 횟수 반환
if(answer>500){ //answer가 500보다 크다면
return -1 //-1을 리턴
}
num % 2 === 0? num = num / 2: num = num * 3+1 //num이 짝수면 2로 나눠준 후 저장, 아니라면 3에 1을 더한 값을 num에 곱하여 num에 저장
answer++ //이와 같이 반복문 수행 후 반복문 끝에 answer의 값을 1 올려주고 다음 반복 수행
}
return answer; // answer값 반환
}
console.log(solution(16))
반복문 하면 거의 for문만 쓰다보니 while문은 잘 몰라서 구글링을 해봤다.
while문
소스 코드를 입력한 배열 혹은 객체의 속성에 맞게 반복하여 실행하는 역할을 한다.
사용방법
while ([조건절]){
[소스 코드];
}
이번 문제 참 어렵다...