728x90
https://programmers.co.kr/learn/courses/30/lessons/12943
코딩테스트 연습 - 콜라츠 추측
1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2
programmers.co.kr
프로그래머스 레벨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문 안에 넣었을 때가 아주 조금 더 빨랐던 것 같다.
GitHub - YOOHYOJEONG/algorithm_practice: 알고리즘 공부 및 코딩테스트 준비
알고리즘 공부 및 코딩테스트 준비. Contribute to YOOHYOJEONG/algorithm_practice development by creating an account on GitHub.
github.com
728x90