티스토리 뷰
#연산 재활용 -> dp
X = int(input())
dp = [0] * (X+1)
# 기본적인 dp 세팅
for i in range(2,X+1):
dp[i] = dp[i-1] +1
#그리디로 푼다면 짝수, 홀수로 바로 나눌 수 있지만
#이 문제의 경우 경우의 수를 고려하는 최솟값임
if i % 2 == 0:
dp[i] = min(dp[i], dp[i//2]+1)
#
if i % 3 == 0:
dp[i] = min(dp[i], dp[i//3]+1)
#
print(dp[X])
'Python > 코딩테스트' 카테고리의 다른 글
[BOJ/Python] 2110. 공유기 설치 (0) | 2025.03.11 |
---|---|
코딩테스트 엣지 케이스 - 완전 탐색 (0) | 2025.03.11 |
동적 계획법 (Dynamic Programming, DP) (0) | 2025.03.09 |
[좌표] 2차원 좌표 이동 문제 (배열 기반) (0) | 2025.02.16 |
[BJ/브론즈] 평균 (0) | 2025.01.26 |