Programmers/1단계
[1단계][연습문제] 콜라츠 추측
Snowboarder
2022. 3. 18. 13:41
문제접근
- while로 num이 1이될때까지 돌려야하고
- if 조건문과 cnt변수를 사용해서 cnt를 출력한다.
- 다중 if 문을 사용할 때 조심한다.
문제풀이
내풀이
def solution(num):
cnt = 0
while num != 1:
if num % 2 == 0:
num = round(num/2)
cnt += 1
elif num % 2 == 1:
num = num*3 + 1
cnt += 1
if cnt >= 500:
cnt = -1
return cnt
다른사람풀이
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
- for 범위를 500으로 두었고 cnt대신 i를 출력
- if문을 1줄로 처리하였다