문제
https://school.programmers.co.kr/learn/courses/30/lessons/12943
1. 코드 풀이
- 입력된 수가 짝수라면 2로 나눈다.
- 입력된 수가 홀수라면 3을 곱하고 1을 더한다
- 결과로 나온 수에 같은 작업을 1이 될 때까지 반복한다
- 단 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않으면 -1 반환
2. 코드 실행
# 처음 생각
if num % 2 == 0:
num = num // 2
else:
num = num * 3 + 1
홀수와 짝수 조건식 세우는건 거의 3초만에 했는데 나머지 제약을 어디에 넣어야할지 고민을 좀 했던 것 같다.
(사실 엄청 간단한데도..ㅠ)
ㅠㅠ 공부 열심히 해야겠다...ㅠ
def solution(num):
count = 0
while num != 1:
if count == 500:
return -1
if num % 2 == 0:
num = num // 2
else:
num = num * 3 + 1
count += 1
return count
3. 결과
'Algorithm > 항해일지 TIL' 카테고리의 다른 글
[DAY 5] 프로그래머스 LV1. 문자열 내림차순으로 배치하기 (0) | 2024.04.01 |
---|---|
[DAY 5] 프로그래머스 LV1. 자연수 뒤집어 배열로 만들기 (0) | 2024.04.01 |
[DAY 3] 프로그래머스 Lv1. 숫자 문자열과 영단어 (0) | 2024.03.30 |
[DAY 3] 프로그래머스 LV0. 문자열을 정수로 변환하기 (0) | 2024.03.30 |
[DAY 1] 프로그래머스 LV1. 핸드폰 번호 가리기 (1) | 2024.03.29 |