본문 바로가기

프로그래머스/구현

[일반] 프로그래머스 '콜라츠 추측' - js

반응형

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/12943

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

2. 설명

입력받은 숫자(num)가 1이 될때까지 반복문을 돌려야하므로 while안에 num!==1 조건을 추가한다.

만약 500번 시도 후에도 1이 되지 않는 다면 -1을 리턴해야하므로 조건에 answer <= 500을 추가한다.

(여기서 answer는 리턴 값인 '시도 횟수')

while문을 통해 조건에 맞게 반복해준 후, while 문에서 빠져나와 num이 1이 되었다면 answer를 그렇지 않다면 -1을 리턴해준다.

3.코드

function solution(num) {
    var answer = 0;
    while (num !== 1 && answer <= 500){
        num % 2 === 0 ? num = num/2 : num = num*3 +1;
        answer++;
    }
    return num === 1 ? answer : -1;
}
반응형