SW/알고리즘

파이썬 : 프로그래머스 : 콜라츠 추측 : 풀이

얇은생각 2019. 9. 20. 07:30
반응형

코드

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

 

실행 결과

정확성 테스트

테스트 1 통과 (0.08ms, 10.6MB)
테스트 2 통과 (0.09ms, 10.7MB)
테스트 3 통과 (0.09ms, 10.8MB)
테스트 4 통과 (0.07ms, 10.7MB)
테스트 5 통과 (0.16ms, 10.6MB)
테스트 6 통과 (0.07ms, 10.7MB)
테스트 7 통과 (0.17ms, 10.7MB)
테스트 8 통과 (0.07ms, 10.7MB)
테스트 9 통과 (0.06ms, 10.6MB)
테스트 10 통과 (0.16ms, 10.7MB)
테스트 11 통과 (0.20ms, 10.8MB)
테스트 12 통과 (0.07ms, 10.7MB)
테스트 13 통과 (0.04ms, 10.7MB)
테스트 14 통과 (0.10ms, 10.7MB)
테스트 15 통과 (0.10ms, 10.7MB)
테스트 16 통과 (0.07ms, 10.7MB)

채점 결과

정확성: 100.0

합계: 100.0 / 100.0

 

 

총평

우선 while 문으로 접근하였습니다. 그 다음, 500이 넘는 경우를 체크합니다. 500이 넘지 않는 경우, 주어진 알고리즘 대로 수행하도록 하였습니다. 주어진 결과에 큰 예외없이, 테스트를 잘 통과하여 문제를 해결하였습니다. 어렵지 않게 문제를 해결하였으나, 좀 더 간략한 방식이 있는 지에 대해 알아보아야 될 것 같습니다. 항상 조사를 하면, 내 코드보다 훨씬 깔끔하고 좋은 방식의 코드를 보게 되고, 꾸준히 간략하고 직관적인 코드들에 대해 배우게 되는 것 같아, 코딩 테스트 공부 역시 꾸준히 해야하는 필요성을 느끼게 되었습니다. 

 

반응형