[프로그래머스] 자바스크립트 - 콜라츠 추측

멤오장·2023년 4월 5일
0

코딩테스트 연습

목록 보기
16/18

[프로그래머스] 코딩테스트 콜라츠 추측


문제 설명

콜라츠 추측이란 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측
1-1. 입력된 수가 짝수라면 2로 나눔
1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더함
2. 결과로 나운 수에 같은 작업을 1이 될 때까지 반복

입력된 수12345678
66/2=33*3+1=1010/2=55*3+1=1616/2=88/2=44/2=22/2=1

작업을 500번 반복해도 1이 되지 않으면 -1 반환


제한사항

입력된 수는 1이상 8000000 미만인 정수


입출력 예

nresult
68
164
626331-1

문제 풀이

function solution(num) {
    let answer = 0,
        reFuc = (n) => {
        answer++; // 실행 횟수
        n%2===0 ? n !== 2 && reFuc(n/2) : n === 1 ? answer = 0 : reFuc(n*3+1);
    }
    reFuc(num);
    return answer>500 ? -1 : answer;
}

🤍 재귀함수
자기 자신을 호출 하는 구조로 만들어진 함수
재귀함수 작성 구성요소
1. 종료 조건
2. 다른 입력 값

profile
일단 적기

0개의 댓글