출처 : https://www.acmicpc.net/problem/14501
In [1]:
def dfs(t, p):
global maxv
if t == N+1:
if maxv < p:
maxv = p
return
## 일을 하는 경우
if t + work_array[t-1][0] <= N+1:
dfs(t + work_array[t-1][0], p + work_array[t-1][1])
## 일을 안하는 경우
dfs(t+1, p)
In [2]:
if __name__ == '__main__':
N = int(input())
work_array = [list(map(int, input().split())) for _ in range(N)]
maxv = 0
dfs(1, 0)
print(maxv)
'알고리즘 > [Python] 백준' 카테고리의 다른 글
(Python) 백준 15684번: 사다리 조작 (0) | 2020.03.03 |
---|---|
(Python) 백준 1931번: 회의실 배정 (0) | 2020.02.26 |
(Python) 백준 11559번: Puyo Puyo (0) | 2020.02.22 |
(Python) 백준 2979번: 트럭 주차 (0) | 2020.02.20 |
(Python) 백준 2161번: 카드 1 (0) | 2020.02.20 |