프로그래머스 - LV.1 - 콜라츠 추측

박종일·2023년 5월 4일
0

프로그래머스 LV.1

목록 보기
14/26




나의 풀이

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 문 고정하는 방법
문제를 푸는 방법을 정말 다양하네...

profile
존경하는 인물: 스토브리그 백승수 단장(남궁민)

0개의 댓글