DEVLOG

프로그래머스 알고리즘#21 - 콜라츠 추측 본문

dev log/algorithm

프로그래머스 알고리즘#21 - 콜라츠 추측

meroriiDev 2020. 12. 22. 12:27
728x90
반응형

<문제>

 

<풀이>

tip num이 1인경우 while문에 진입하지 못하도록 막아야 num이 1일때도 정상적으로 작동한다.

그렇지 않으면 다 통과하더라도 1 케이스에서만 실패한다.

function solution(num) {
    var cnt=0;
    if(num === 1) return 0;
    while(1){
        num%2==0?num/=2:num=num*3+1;
        if(cnt>=500) return -1
        cnt++;
        if(num === 1) return cnt;
    }
}

 

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

비슷한 동작이지만 완전 달라보이고

훨씬 깔끔하게 동작하는 코드로 수정했다.

 

728x90
반응형
Comments