알고리즘/프로그래머스

[프로그래머스][자바스크립트][Level1] 콜라츠 추측

Benjamin_Choi 2022. 2. 28. 18:59

풀이

 

 

/**
 * 콜라츠추측.js
 * https://programmers.co.kr/learn/courses/30/lessons/12943?language=javascript
 */

function solution(num) {
    let count = 0, n = num;
    while (count <= 500 && n !== 1) {
        n = colatzGuess(n);
        count++;
    }

    return count > 500 ? -1 : count;
}

function colatzGuess(num) {
    return num % 2 === 0 ? num /= 2 : (num * 3) + 1;
}

 

문제에 주어진대로 짝수/홀수 일 때를 구분해서 처리해주면된다. 재귀로도 처리가능하나 while로 처리했다.