728x90
*문제 출처는 프로그래머스에 있습니다.
문제 제목: 콜라츠 추측
문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12943
나의 풀이
def solution(num):
cnt = 0
while num > 1:
if num % 2 == 0:
num = num/2
cnt += 1
elif num % 2 == 1:
num = num*3 + 1
cnt += 1
if cnt == 500:
cnt = -1
break
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
728x90
'coding test - python > Programmers' 카테고리의 다른 글
Programmers / 정수 제곱근 판별 / Python (0) | 2022.03.31 |
---|---|
Programmers / 하샤드 수 / Python (0) | 2022.03.31 |
Programmers / 정수 내림차순으로 배치하기 / Python (0) | 2022.03.31 |
Programmers / 문자열 내 p와 y의 개수 / Python (0) | 2022.03.31 |
Programmers / 소수찾기 / Python (0) | 2022.03.31 |