728x90
https://programmers.co.kr/learn/courses/30/lessons/12943
프로그래머스 레벨1 연습문제인 콜라츠 추측을 풀었다.
while의 조건문만 제대로 입력하면 금방 풀 수 있는 문제이다.
정답 코드
def solution(num):
answer = 0
while num != 1 :
if answer > 500 :
return -1
if num % 2 == 0 :
num = num/2
elif num % 2 == 1 :
num = num*3 + 1
answer += 1
return answer
while문 뒤의 조건이 만족하는 동안 반복이 실행이 되니까 while num != 1:로 실행을 하면 num이 1이 되는 순간 반복이 멈추게 된다.
500번을 했는데 1이 되지 않으면 -1을 반환해야하기 때문에 answer가 500보다 클 때 -1을 반환하도록 했다. 이 조건문은 while문 밖으로 빼도 안으로 넣어도 큰 차이가 없었는데 while문 안에 넣었을 때가 아주 조금 더 빨랐던 것 같다.
728x90