본문 바로가기
Javascript

프로그래머스 문제 풀이 29

by 🐬마뇽뇽 마뇽🦄 2022. 11. 28.
728x90

프로그래머스 문제 풀이 29

콜라츠 추측 : 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측

01. 문제

function solution(num) {
    var answer = 0;
    return answer;
}

02. 나의 문제 풀이

function solution(num) {
    let answer = 0;
    
    while (num != 1) {
        if (num % 2 == 0){
            num /= 2;
        } else {
            num = (num * 3) + 1;
        }
        answer += 1;
    }
    if (answer >= 500) {
        return -1;
    } else {
        return answer;
    }
}

03. 다른 사람의 문제 풀이

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;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log( collatz(6) );

똑같이 while문으로 num 이 1이 아닐때와 answer가 500이 안될 때 다시 짝수일 시 num을 2로 나누고, 홀수일 시 num 에 2을 곱하고 더하기 1을 하며 answer가 하나씩 증가하는 반복문이다.


728x90

'Javascript' 카테고리의 다른 글

프로그래머스 문제 풀이 31  (1) 2022.11.29
프로그래머스 문제 풀이 30  (2) 2022.11.28
프로그래머스 문제 풀이 28  (1) 2022.11.24
프로그래머스 문제 풀이 27  (1) 2022.11.22
프로그래머스 문제 풀이 26  (2) 2022.11.21

댓글


고양이 고양이
고양이 고양이
고양이 고양이