728x90

문제


https://programmers.co.kr/learn/courses/30/lessons/12943

 

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

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

programmers.co.kr

 

코드


function solution(num) {
  let answer = 0; //정답 변수
  if (num === 1) return 0; //num이 1이면 코드를 실행할 필요가 없으니 0 return
  while (true) {
    if (num % 2 === 0) {
      num = num / 2;
      answer++;
    } else {
      num = num * 3 + 1;
      answer++;
    }

    if (num === 1) break; //num이 1이 되면 break
    if (answer > 500) return -1; //500번반복해도 안되면 -1 return
  }
  return answer;
}

 

후기


  • 문제는 쉽게 풀었지만 히든 테스트케이스 13번에 막힌 분들이 조금 있을 것 같다
  • num이 1로 주어졌을 때를 예외처리 해주면 바로 해결할 수 있을 것이다

+ Recent posts