Coding Test

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

hyungminjeon 2024. 6. 11. 17:44

[문제]

[해결]

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

[정리 및 새롭게 알게 된 점]

1. if num == 1: return 0을 통해 주어진 수가 1인 경우 0을 리턴해주었고,

2. for i in range(500)을 이용해 작업을 500번 반복하는 반복문을 작성한 뒤,

3, num 이 2로 나누어지면 num/2, num이 2로 나누어지지 않으면 num*3 +1을 해주었다

4. 계산된 num 값이 1을 가질 때 i+1을 반환하였으며, 반복문이 500번 시행되어도 num 이 1이 되지 않은 경우에는 -1을 리턴해주었다.