-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path14501.py
54 lines (35 loc) · 1.2 KB
/
14501.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<<<<<<< HEAD
# 5주차 알고리즘 과제 퇴사 14501번
n = int(input())
t = []
p = []
dp = [0]*(n+1)
for i in range(n):
T, P = map(int, input().split())
t.append(T)
p.append(P)
for i in range(n-1, -1, -1): # 뒤에서 꺼꾸로 채워나감
if t[i] + i > n: # 상담에 걸리는 시간이 퇴사일 보다 더 클 경우
dp[i] = dp[i+1] # 다음 날 값 그대로 가져오기
else:
dp[i] = max(dp[i+1], dp[t[i] + i] + p[i])
# 그 날 상담을 안 할 때와 값과, 할 때의 값 중 최대값 선택
print(dp[0])
=======
# 5주차 알고리즘 과제 퇴사 14501번
n = int(input())
t = []
p = []
dp = [0]*(n+1)
for i in range(n):
T, P = map(int, input().split())
t.append(T)
p.append(P)
for i in range(n-1, -1, -1): # 뒤에서 꺼꾸로 채워나감
if t[i] + i > n: # 상담에 걸리는 시간이 퇴사일 보다 더 클 경우
dp[i] = dp[i+1] # 다음 날 값 그대로 가져오기
else:
dp[i] = max(dp[i+1], dp[t[i] + i] + p[i])
# 그 날 상담을 안 할 때와 값과, 할 때의 값 중 최대값 선택
print(dp[0])
>>>>>>> 4bb93d60c9fe268bf85ee7c5878c20aa6b0ff503