노력에는 지름길이 없으니까요

콜라츠 추측 - 큰 수 반복문 본문

Python

콜라츠 추측 - 큰 수 반복문

데건 2024. 6. 18. 16:07
728x90

 

해결일 언어 레벨 테스트명
20240618 Python level 1  콜라츠 추측

 

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

 

 

 


 

 

내 코드

def solution(num):
    answer = 0
    cnt = 0
    while True :
        if num == 1 : return cnt
        num = num/2 if num%2==0 else num*3+1
        cnt+=1
        if cnt ==500 : return -1
    return cnt

 

개선점: 분기점이 너무 많아.

맨 마지막의 cnt == 500을 안할 수 있었다면 좋았을 텐데.

아래의 코드에서 굳이 다수 처리할 반복문에서 무한 루프를 사용하지 않은 예를 보았다.

문제에서 횟수가 정해져 있으면 더더욱 무한 루프는 안 쓰는 걸로.

 

베스트 코드

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
728x90
반응형