콜라츠 추측

hyuri·2023년 9월 14일
0

코딩테스트 연습

목록 보기
9/70

내가 작성한 답

function solution(num) {
    let answer = 0;
    let a = [];
    
    do {
        if (num == 1) {
            answer = 0; 
            break;
        }
        if (num % 2 == 0){
            a.push(num);
            num = num / 2;
        } else {
            a.push(num);
            num = num * 3 + 1;
        }
        if (a.length >= 500){
            answer = -1;
            break;
        } else answer = a.length;
        
    } while (num !== 1);
    
    return answer;
}

깔끔한 답


function solution(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;
}

왜 이런 생각을 못했을까...

while문을 사용하여 코드를 간소화했음.
가독성이 더 좋음.
불필요한 중복 코드가 없음.

profile
개발자가 되고 싶은 지망생

0개의 댓글