풀이
/**
* 콜라츠추측.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로 처리했다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][자바스크립트][Level2] 영어 끝말잇기 (0) | 2022.03.05 |
---|---|
[프로그래머스][자바스크립트][Level2] 숫자의 표현 (0) | 2022.03.03 |
[프로그래머스][자바스크립트][Level1] 이상한 문자 만들기 (0) | 2022.02.25 |
[프로그래머스][자바스크립트][Level2] 피보나치 수 (0) | 2022.02.25 |
[프로그래머스][자바스크립트][Level2][카카오] 캐시 (0) | 2022.02.22 |
댓글