티스토리 뷰

코딩테스트 연습 - 콜라츠 추측 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 콜라츠 추측

1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2

programmers.co.kr

1-1. 입력된 수가 짝수라면 2로 나눕니다. 

1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 

2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.

 


내 코드

function solution(num) {
  let count = 0;

  while (num !== 1 && count < 500) {
    if (num % 2 === 0) num /= 2;
    else {
      num = num * 3 + 1;
    }    
    count++;
  }
  return count >= 500 ? -1 : count;
}

while문 돌리면서 카운트 올려주고 카운트가 500 넘어가면 -1, 아니면 카운트 리턴했다.

 


다른 사람 코드는 내 코드처럼 while문 쓰기와 재귀함수 쓰는 방식이었다. 두 방법 말고 다른 방법은 없었다.

 

반복문과 재귀문을 비교하면 아무래도 반복문이 나았다. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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 28 29 30 31
글 보관함