트랙
/
WebAssembly
WebAssembly
/
연습 문제
/
콜라츠 추측
콜라츠 추측

콜라츠 추측

쉬움

소개

어느 저녁, 누군가 어떤 아이디어를 집요하게 좇고 있었던 것처럼, 알쏭달쏭한 낙서로 가득한 낡은 공책을 우연히 발견했어요. 한 페이지에는 질문 하나가 눈에 띄었어요: 모든 수는 1까지 갈 수 있을까? 그것은 콜라츠 추측이라는 것과 연결되어 있었어요. 수십 년째 수많은 사람을 골머리 앓게 한 수수께끼였죠.

규칙은 보기보다 단순했어요. 아무 양의 정수나 하나 골라요.

  • 짝수라면, 2로 나눠요.
  • 홀수라면, 3을 곱하고 1을 더해요.

그런 다음, 그 결과로 이 단계들을 끝없이 반복해요.

궁금해진 나머지, 시험 삼아 12를 골라 여정을 시작했어요:

12 ➜ 6 ➜ 3 ➜ 10 ➜ 5 ➜ 16 ➜ 8 ➜ 4 ➜ 2 ➜ 1

두 번째 수(6)부터 세면 1에 도달하기까지 9단계가 걸렸고, 규칙이 반복될 때마다 수는 계속 바뀌었어요. 처음에는 수열이 예측할 수 없어 보였어요. 위로, 아래로, 사방으로 마구 튀는 것처럼요. 그런데도 이 추측은 시작하는 수가 무엇이든 항상 1에서 끝난다고 말해요.

흥미롭기도 했지만, 동시에 알쏭달쏭했어요. 왜 이게 항상 통하는 걸까요? 이 과정이 무너져서 영원히 반복되거나 무한으로 빠져나가는 수가 있을까요? 공책은 이걸 풀어내면 뭔가 심오한 것을 밝혀낼 수 있다고 암시했어요. 그리고 그와 함께 명성과 재산, 역사에 남을 자리가 그 비밀을 풀어내는 사람을 기다리고 있죠.

지침

양의 정수가 주어지면, 콜라츠 추측의 규칙에 따라 1에 도달할 때까지 걸리는 단계 수를 반환해요.

트랙별 지침

n이 양의 정수가 아니라면 실행을 계속하지 말고, 오류 상태를 나타내는 -1을 반환해요.


출처

Wikipedia링크가 새 창이나 탭에서 열려요
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
WebAssembly Exercism

콜라츠 추측 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 WebAssembly 트랙을 연습 문제 87개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.