본문 바로가기
프로그래머스/Lv.1

콜라츠 추측 - Python, DFS

by 아찌방 2024. 11. 8.

 

 

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

 

프로그래머스

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

programmers.co.kr

 

 

 

풀이 - 나의 생각

파이썬으로 DFS 처음 시도해봤습니다.

 

하는 방법은 역시나 똑같네요.

 

콜라츠 추측이라는 걸 처음 알게 됐는데 재밌는 추측이네요.

 

dfs 내부에서

 

num == 1을 먼저 체크하는 이유는

 

500번째에 딱 1이 됐을 경우도 체크하기 위해서 입니다.

 

코드

 

def dfs(cnt, num):
    if num == 1:
        return cnt
    
    if cnt == 500:
        return -1
    
    if num%2==0:
        return dfs(cnt+1, num/2)
    else:
        return dfs(cnt+1, (num*3)+1)
    
def solution(num):
    return dfs(0, num)

 

 

 

 

 

 

 

다음에 또 봐요

 

728x90