Algorithm

[프로그래머스] Level1 | 콜라츠 추측 - 파이썬(Python) | 연습문제

토오오끼 2021. 11. 18. 16:45
728x90
반응형

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

 

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

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

programmers.co.kr

프로그래머스 레벨1 연습문제인 콜라츠 추측을 풀었다.


while의 조건문만 제대로 입력하면 금방 풀 수 있는 문제이다.

정답 코드

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

while문 뒤의 조건이 만족하는 동안 반복이 실행이 되니까 while num != 1:로 실행을 하면 num이 1이 되는 순간 반복이 멈추게 된다.

500번을 했는데 1이 되지 않으면 -1을 반환해야하기 때문에 answer가 500보다 클 때 -1을 반환하도록 했다.  이 조건문은 while문 밖으로 빼도 안으로 넣어도 큰 차이가 없었는데 while문 안에 넣었을 때가 아주 조금 더 빨랐던 것 같다.


해당 문제 풀이 코드

 

GitHub - YOOHYOJEONG/algorithm_practice: 알고리즘 공부 및 코딩테스트 준비

알고리즘 공부 및 코딩테스트 준비. Contribute to YOOHYOJEONG/algorithm_practice development by creating an account on GitHub.

github.com

 

728x90
반응형