반응형
풀이
- DP 문제 이므로 점화식을 찾는다.
- 3가지 연산에 대해서 점화식을 세우고 각 점화식의 결과 중 최소값을 택하여 DP 배열에 넣는다.
- 전체 DP 배열을 모두 구한후 해당하는 DP[N]을 출력한다.
import sys
n = int(sys.stdin.readline())
dp = [0,0,1,1]
for i in range(4,1000001):
dp.append(0)
dp33 = 1000000
dp22 = 1000000
if i % 3 == 0:
dp33 = dp[int(i/3)]
if i % 2 == 0:
dp22 = dp[int(i/2)]
dp[i] = min( dp[i-1]+1, dp22+1 , dp33+1)
print(dp[n])
반응형
'코딩 > 백준' 카테고리의 다른 글
알고리즘 - Python / 백준 - 9461번 : 파도반 수열 (0) | 2021.08.14 |
---|---|
알고리즘 - Python / 백준 - 2579번 : 계단 오르기 (0) | 2021.08.14 |
알고리즘 - Python / 백준 - 6603번 : 로또 (0) | 2021.08.14 |
알고리즘 - Python / 백준 - 14397번 : 해변 (0) | 2021.08.14 |
알고리즘 - Python / 백준 - 5430번 : AC (0) | 2021.08.14 |