728x90
https://programmers.co.kr/learn/courses/30/lessons/12943#
function solution(num) {
var answer = 0;
// 반복문 도는걸 셀 변수
let count = 0;
while(true){
// 만약 받아온 값이 1이면 count=0 내보냄
if(num === 1)
return count
// 짝수 홀수 처리
if(num%2 === 0){
num = num / 2;
count++;
}else{
num = (num*3) +1
count++;
}
// count > 500처리
if(count > 500)
return -1;
// 결과적으로 num이 1이되면 끝
if(num === 1)
return count;
}
return answer;
}
나는 우직하게 코린이처럼 풀어냈고
재귀함수 안쓰는것 중에서는 아래 정답이 제일 깔끔했던거 같다.
function collatz(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;
}
728x90
'알고리즘' 카테고리의 다른 글
프로그래머스 Level 1 - 정수 내림차순으로 배치하기 (Javascript) (0) | 2022.05.15 |
---|---|
프로그래머스 Level 1 - 정수 제곱근 판별 (Javascript) (0) | 2022.05.15 |
프로그래머스 Level 1 - 완주하지 못한 선수 (Javascript) (0) | 2022.05.15 |
프로그래머스 Level 1 - 행렬의 덧셈 (Javascript) (0) | 2022.05.14 |
프로그래머스 Level 1 - 2016년 (Javascript) (0) | 2022.05.14 |