43. 콜라스 추측
코딩테스트 연습 > 연습문제 > 콜라스 추측
https://programmers.co.kr/learn/courses/30/lessons/12943
Input value =
Process =
입력된 수가 짝수/홀수인지 파악
Output value =
n이 1이 될 때 까지의 작업 횟수
#00
n = 6
cnt = 0
#01
while True:
if n == 1:
0
if n%2 == 0:
n //=2
else:
n = (n*3)+1
cnt+=1
#02
if n == 1:
cnt
break
elif cnt == 500:
-1
break
#03
cnt
def solution(n):
cnt = 0
while True:
if n == 1:
return 0
if n%2 == 0:
n /=2
else:
n = (n*3)+1
cnt+=1
if n == 1:
return cnt
elif cnt == 500:
return -1
# Code test
n = 6
solution(n)
n의 값이 계속 변경되어 재귀함수를 써도 될 듯 하지만, 사용에 있어서 제약(cnt가 500 이상일경우 return -1 또는 1일 경우 return 0) 의 경우가 있어 위와 같이 while-if 방법을 써서 간단히 구현하는 것이 더 편할 것이라 판단했다...!