coding test - python/Programmers

Programmers / 콜라츠 추측 / Python

sillon 2022. 3. 31. 22:40
728x90
반응형

 

*문제 출처는 프로그래머스에 있습니다.

문제 제목: 콜라츠 추측

문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12943


나의 풀이

def solution(num):
    cnt = 0
    while num > 1:
        if num % 2 == 0:
            num = num/2
            cnt += 1
        elif num % 2 == 1:
            num = num*3 + 1
            cnt += 1
            
        if cnt == 500:
            cnt = -1
            break
    return cnt

문제의 조건대로만 작성하면 쉽게 풀 수 있다.

 

다른 풀이

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