알고리즘

[구현] 프로그래머스 level 1 콜라츠 추측 (Python 파이썬)

하고파 2025. 6. 10. 21:50

💡문제 링크

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

💡문제 분석 요약

숫자가 1이 될때까지 아래의 플로우를 반복한다.

1-1. 입력된 수가 짝수라면 2로 나눕니다.
1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.
2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.

이 플로우를 500번 진행해도 1이 안된다면 -1을 반환하고, 아니라면 플로우 진행 횟수를 반환한다.

 

💡알고리즘 설계

while에 조건 넣으려다 헷갈렸다. 일단 while True로 두고 if문으로 조건을 부여하자

💡코드

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

 

💡 오답 풀이

...

 

💡 다른 풀이

...

 

💡 느낀점 or 기억할정보

...