dfs 백트래킹 했는데 dp로 상태인자 주고 하는게 더 나았을지도
import sys
input = sys.stdin.readline
def dfs(node, energy, key):
global min_energy
if energy >= min_energy:
return
if node == N:
min_energy = min(min_energy, energy)
return
if node + 1 <= N:
dfs(node + 1, energy + small_jump[node], key)
if node + 2 <= N:
dfs(node + 2, energy + big_jump[node], key)
if node + 3 <= N and key:
dfs(node + 3, energy + K, 0)
N = int(input())
big_jump = [0]
small_jump = [0]
for _ in range(N - 1):
small, big = map(int, input().split())
small_jump.append(small)
big_jump.append(big)
K = int(input())
min_energy = float('inf')
dfs(1, 0, 1)
print(min_energy)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 19948 음유시인영재 (0) | 2021.10.18 |
---|---|
[백준][Python] 1374 강의실 (0) | 2021.10.16 |
[백준][Python] 1080 행렬 (0) | 2021.10.15 |
[백준][Python] 20551 Sort 마스터 배지훈의 후계자 (0) | 2021.10.15 |
[백준][Python] 1920 수찾기 (0) | 2021.10.15 |