본문 바로가기

프로그래머스

콜라츠추축

반응형

아래와 같이 코드를 작성하였으나 에러가 떳다

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

    return cnt

그래서 다른사람의 코드를 가져왔다.

출처:

https://velog.io/@1jinju/Python%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-Lv.1-%EC%BD%9C%EB%9D%BC%EC%B8%A0-%EC%B6%94%EC%B8%A1

이코드를 사용하니 해결되었다.

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

break을 사용해서 나가는 것과 반복문의 조건식을 사용해서 빠져나가는 것의 차이밖에없다

다음부터 왠만하면 반복문 조건으로 나가야겠다

반응형

'프로그래머스' 카테고리의 다른 글

행렬의 덧셈  (0) 2024.02.29
행렬의 덧셈  (0) 2024.02.28
자릿수 더하기  (0) 2024.02.26
x만큼 간격이 있는 n개의 숫자  (1) 2024.02.26
해시문제 완주하지 못한 선수  (0) 2024.02.23