Algorithm/baekjoon
[파이썬]baekjoon 1463: 1로 만들기
갈잃자
2023. 1. 10. 19:07
https://www.acmicpc.net/problem/1463
1463번: 1로 만들기
첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.
www.acmicpc.net
dp문제
import sys
input = sys.stdin.readline
N = int(input())
dp = [[0, 0] for _ in range(4)]
for i in range(2, N + 1):
min_lst = []
if not i % 3:
dp[0].append(i // 3)
min_lst.append(dp[3][i // 3])
else:
dp[0].append(-1)
if not i % 2:
dp[1].append(i // 2)
min_lst.append(dp[3][i // 2])
else:
dp[1].append(-1)
dp[2].append(i - 1)
min_lst.append(dp[3][i - 1])
dp[3].append(min(min_lst) + 1)
print(dp[3][N])