[프로그래머스] Lv.1 콜라츠 추측

Miro·2022년 7월 24일
0
post-thumbnail

프로그래머시 Lv.1 콜라츠 추측

문제, 제한사항

입출력

나의 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function solution(num) {
    let answer = num;
    let result = 0;
    
    if(num === 1) {
        return 0;
    }
    
    for(let i = 1; i < 501; i++) {
        if(answer % 2 === 0) {
            answer /= 2;
        } else {
            answer = (answer * 3+ 1;
        }
        
        result = i;
        if(answer === 1){
            break;
        }
    }
    
    if(answer !== 1) {
        return -1;
    }
    
    return result;
}
cs

변수 answer에 매개변수 num을 할당해준다.

만약 num이 1이라면 바로 1이 되는 조건이 성립 하기 때문에 return값은 0이 된다.

반복문의 i가 1부터 500번까지 증가 할 동안 만약 answer가 짝수이면 나누기 2를 하고, 홀수이면 3을 곱한후 1을 더해준다.

변수 result에 증가한 i값을 할당하여 실행 횟수를 나타낸다.

만약 answer이 1이 되었다면 break가 작동해서 반복문이 종료된다.

반복문이 종료된 뒤 answer이 1이 아니라면 -1을 return 한다.

반복문의 answer이 1로 종료되었다면 result값을 return 한다.

profile
프론트엔드 개발자(진)

0개의 댓글