Skip to content

Commit 0df3ccb

Browse files
author
windsor
committed
[boj]퇴사
1 parent 78fdc26 commit 0df3ccb

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

BOJ/14501.퇴사/6047198844.py

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# 현재 시점을 기점으로 만들수있는 최대 이익을 반환한다.
2+
def dfs(start_day):
3+
# 퇴사했으므로 일을 시작할 수 없다.
4+
if start_day == N + 1:
5+
return 0
6+
7+
global memo
8+
# 현재 시점이 저장되어 있는가?
9+
if memo[start_day] != -1:
10+
return memo[start_day]
11+
12+
# 현재 시점의 누적금액. 아직 일을 진행하지 않은 상태이다.
13+
res = 0
14+
15+
# 현재시점을 진행하는데 드는 비용 = (시간비용, 돈비용)
16+
time_cost, money_cost = bill[start_day]
17+
18+
# 기간내에 일을 끝내고 난 후의 범위
19+
for day in range(time_cost + start_day, N + 2):
20+
res = max(res, money_cost + dfs(day))
21+
22+
memo[start_day] = res
23+
return memo[start_day]
24+
25+
26+
N = int(input())
27+
28+
# (시간 , 비용)
29+
bill = [(1, 0)] + [tuple(map(int, input().split())) for _ in range(N)]
30+
memo = [-1] * (N + 1)
31+
print(dfs(0))

0 commit comments

Comments
 (0)