코딩 테스트/test_javaScript

[코딩테스트/javaScript] 콜라츠 추측

ijooha 2024. 12. 18. 19:15

 

function solution(num) {
    for (i=1; i<=500; i++) {
        if (num != 0) {
            (num % 2 == 0) ? num /= 2 : num *= 3 += 1;
        } else {
            return i;
        }
    }
    return -1;
}

 

진짜 왜 틀렸는지 모르겠어서 코드 전공자분께 여쭤봤는데,

*=같은 건 한번만 쓰고, 연달아 쓰면 안된다고 코잘알 분이 알려주심!

js가 인식을 못한다고 했다!

 

그리고 반복문에서 i변수를 무조건 선언해줘야 하기 때문에 let을 넣어줘야 한다.

function solution(num) {
    for (let i=1; i<=500; i++) {
        if (num != 0) {
            (num % 2 == 0) ? num /= 2 : num = num * 3 + 1;
        } else {
            return i;
        }
    }
    return -1;
}

 

애초에 조건문 if (num != 0)을 잘못 썼다..... 그리고 반복문에서 i 시작 포인트를 1이라고 썼는데, 0이 맞다!

function solution(num) {
    for (let i=0; i<=500; i++) {
        if (num != 1) {
            (num % 2 == 0) ? num /= 2 : num = num * 3 + 1;
        } else {
            return i;
        }
    }
    return -1;
}