[프로그래머스 / lv.1] 콜라츠 추측


날짜: 2021년 5월 20일
소요 시간: 4분 8초
카테고리: 수학 문제
태그: 레벨1, 파이썬

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

입출력 예시

nresult
68
164
626331-1

내가 적은 코드

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

풀이 과정

문제 설명을 그대로 코드로 옮겼다. 한국말을 그대로 파이썬으로 옮긴거라 크게 풀이 과정이라고 할 게 없다.

베스트 코드

def collatz(num):
    for i in range(500):
        num = num / 2 if num % 2 == 0 else num*3 + 1
        if num == 1:
            return i + 1
    return -1

반성

  • 처음부터 while을 썼다면 쉬웠을 텐데 for로 돌리려고 하다가 시간을 많이 잡아먹었다.
  • 문법을 확실하게 익히고 이해하지 못해 벌어진 일인 것 같다.




© 2021. by hminkim