목차
📝 문제
📝 문제
🎯 알고리즘
💡 문제 이해
- 입력된 정수 num에 대해 다음 작업을 반복한다:
- 짝수면 2로 나눈다.
- 홀수면 3을 곱하고 1을 더한다.
- 이 과정을 반복하면 언젠가는 num이 1이 된다고 알려져 있음.
- 몇 번의 작업 끝에 1이 되는지를 반환하면 됨.
- 단, 500번 반복해도 1이 되지 않으면 -1을 반환해야 함.
💡 문제 접근
- count = 0으로 반복 횟수 세기 시작.
- 반복문 안에서 다음을 계속 수행:
- 짝수: num //= 2
- 홀수: num = num * 3 + 1
- 횟수 count += 1
- num == 1이 되면 count 리턴.
- count가 500을 초과하면 -1 리턴.
✅ 실습 인증 _코드
def solution(num):
count = 0
if num==1:
return 0
while True:
if num%2==0:
num = num//2
else:
num = num*3+1
count+=1
if num==1:
return count
if count>=500:
return -1
⚡ 트러블 슈팅
🌱 첫번째 시도할 때 테스트 케이스 16개 중에 15개 통과,, 한 개 실패
-> 그 이유는 while문 돌기 전에 num==1, 즉 입력된 숫자 num이 1인 경우를 처리하지 않았기 때문
'알고리즘 > python' 카테고리의 다른 글
[프로그래머스/Python] 42576번: 완주하지 못한 선수 (0) | 2025.04.22 |
---|---|
[프로그래머스/Python] 340199번: 지폐접기 [PCCE 기출문제 9번] (0) | 2025.04.21 |
[백준/Python] 1049번: 기타줄 (0) | 2025.04.11 |
[백준/Python] 1100번: 하얀 칸 (0) | 2025.04.11 |
[프로그래머스/Python] 181836번: 주사위 게임3 (0) | 2025.04.07 |