[프로그래머스 / lv.1] 콜라츠 추측
in Problem Solving on Programers
날짜: 2021년 5월 20일
소요 시간: 4분 8초
카테고리: 수학 문제
태그: 레벨1
, 파이썬
입출력 예시
n | result |
---|---|
6 | 8 |
16 | 4 |
626331 | -1 |
내가 적은 코드
def solution(num):
count = 0
while num > 1:
if num%2 == 0:
num = num/2
count += 1
else:
num = (num*3) + 1
count += 1
if count >= 500:
count = -1
return count
풀이 과정
문제 설명을 그대로 코드로 옮겼다. 한국말을 그대로 파이썬으로 옮긴거라 크게 풀이 과정이라고 할 게 없다.
베스트 코드
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
반성
- 처음부터
while
을 썼다면 쉬웠을 텐데for
로 돌리려고 하다가 시간을 많이 잡아먹었다. - 문법을 확실하게 익히고 이해하지 못해 벌어진 일인 것 같다.