본문 바로가기
Engineering WIKI/Programmers

[프로그래머스] 콜라츠 추측

by wonos 2022. 4. 27.
 

코딩테스트 연습 - 콜라츠 추측

1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2

programmers.co.kr

내풀이 (성공)

def check_even(num):
    if num % 2 == 0:
        num = num // 2
    else:
        num = (num * 3) + 1
        
    return num
        
def solution(num):
    if num == 1:
        return 0
    else: 
        for i in range(501):
            num = check_even(num)
            
            if num == 1:
                return i + 1
            if i == 500:
                return -1

 

다른방법 1

def solution(num):
    if num == 1:
        return 0
    for i in range(500):
        num = num / 2 if num % 2 == 0 else num*3 + 1
        if num == 1:
            return i + 1
    return -1