최솟값들의 후보자들을 조사하는 과정을 구현하는 것이
i-j라고 생각하는데 왜 이렇게 많은 시간을 들였을까
자만하지말자,,,

# n 입력
n = int(input())
# p 설계
p = [0]
# p 입력
p.extend(list(map(int, input().split())))
# dp 설계
dp = [
0 for _ in range(n + 1)
]
# dp 초기설정
dp[1] = p[1]
# dp 채워넣기
for i in range(2, n + 1):
# 최솟값 설정
m = 10001
# 최솟값의 후보자들을 조사하면서,
for j in range(1, i + 1):
# 최솟값을 찾으면,
if dp[i-j] + p[j] < m:
# 최솟값 갱신
m = dp[i-j] + p[j]
# dp 값 추가
dp[i] = m
# 출력
print(dp[-1])'Algorithm(BOJ, Python) > Dynamic Programing' 카테고리의 다른 글
| [백준_14494] 다이나믹이 뭐예요? python (0) | 2022.07.19 |
|---|---|
| [백준_15989] 1,2,3더하기 4 python (0) | 2022.07.18 |
| [백준_1965] 상자넣기 python (0) | 2022.07.15 |
| [백준_11048] 이동하기 python (0) | 2022.07.14 |
| [백준_1904] 01타일 python (0) | 2022.07.13 |