나의 풀이
def solution(num):
answer = 0
while True:
if num != 1:
if num % 2 == 0:
num = num // 2
answer += 1
if num == 1:
break
return answer
else:
num = num * 3 + 1
answer += 1
if num == 1:
break
return answer
# 예외 처리 (500번 실행 추측 실패 or num ==)
if answer == 500:
return -1
elif num == 1:
return 0
return answer
while문으로 1이 될 때 까지 반복하여 이를 answer 변수에 계속 몇번 실행했는지 저장하는 코드를 만들었다.
다른 풀이
def collatz(num):
for i in range(500):
num=num/2 if num%2==0 else num*3+1
if num==1:
return i+1
return -1
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(collatz(78))
500번만 수행되도록 할 수 있게 for 문 고정하는 방법
문제를 푸는 방법을 정말 다양하네...