8000 Update 14501.cpp · lenamin/basic-algo-lecture@8a93d3a · GitHub
[go: up one dir, main page]

Skip to content

Commit 8a93d3a

Browse files
Update 14501.cpp
1 parent 839be9b commit 8a93d3a

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

0x10/solutions/14501.cpp

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,30 @@
1-
// Authored by : Hot6Mania
1+
// Authored by : sukam09
22
// Co-authored by : -
3-
// http://boj.kr/e27e5b8dfc314c618c8975a2452026aa
3+
// http://boj.kr/f954e10df8224f1189c74c9a8566396d
44
#include <bits/stdc++.h>
55
using namespace std;
66

7-
int n;
8-
int t[20], p[20], d[20];
7+
int t[20];
8+
int p[20];
9+
int d[20]; // i번째 일에 상담을 시작했을 때 얻을 수 있는 최대 수익
910

1011
int main(void){
1112
ios::sync_with_stdio(0);
1213
cin.tie(0);
1314

15+
int n;
1416
cin >> n;
15-
for(int i = 0; i < n; ++i) cin >> t[i] >> p[i];
1617

17-
for(int i = 0; i < n; ++i){
18-
d[i] = max(d[i], d[i-1]);
19-
if(i + t[i] <= n + 1)
20-
d[i + t[i]] = max(d[i + t[i]], d[i] + p[i]);
21-
}
18+
for (int i = 1; i <= n; i++) cin >> t[i] >> p[i];
2219

20+
for (int i = n; i >= 1; i--) {
21+
// i번째 일에 상담을 할 수 있을 경우
22+
if (i + t[i] <= n + 1) {
23+
// i번째 일에 상담을 했을 때와 상담을 하지 않았을 때 얻을 수 있는 수익 중 최대 수익을 취함
24+
d[i] = max(d[i + t[i]] + p[i], d[i + 1]);
25+
}
26+
else d[i] = d[i + 1];
27+
}
28+
2329
cout << *max_element(d, d + n + 1);
2430
}

0 commit comments

Comments
 (0)
0