<C/C++> BOJ 14501: ํด์ฌ
Coding Test
2022. 5. 3. 10:21
https://www.acmicpc.net/problem/14501
14501๋ฒ: ํด์ฌ
์ฒซ์งธ ์ค์ ๋ฐฑ์ค์ด๊ฐ ์ป์ ์ ์๋ ์ต๋ ์ด์ต์ ์ถ๋ ฅํ๋ค.
www.acmicpc.net
์์ ์ ํ์๋ ๋ฌธ์ ์ธ๋ฐ ์ง๊ธ ๋ค์๋ณด๋ DFS๋ก๋ ํ ์ ์์ ๊ฒ ๊ฐ๋ค์!
#include <iostream>
#include <cstring>
using namespace std;
#define MAXN 15
int N; // N+1์ผ์ ํด์ฌ
int T[MAXN + 5]; // ์๋ด ์๋ฃํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ๊ธฐ๊ฐ
int P[MAXN + 5]; // ์๋ด ํ์ ๋ ๋ฐ์ ์ ์๋ ๊ธ์ก
int C[MAXN + 5];
int sol;
void InputData(void) {
cin >> N;
for (int i = 1; i <= N; i++) {
cin >> T[i] >> P[i];
}
}
int max(int a, int b) {
return a > b ? a : b;
}
void Solve(void) {
// ํ๋ ค๋ ๋ ์ง๋ณด๋ค ๊ฐ๊ฑฐ๋ ๋ ๋นจ๋ฆฌ ๋๋๋ฉด์ ์์ต์ด ๋ ๋ง์ผ๋ฉด ๊ทธ์ชฝ์ผ๋ก ์ฎ๊น
for (int i = 1; i <= N; i++) {
if (i + T[i] <= N + 1) { // ์ผํ์ ๋
C[i + T[i]] = max(C[i + T[i]], C[i] + P[i]);
sol = max(sol, C[i + T[i]]);
}
// ์ผ ์ํ์ ๋
C[i + 1] = max(C[i + 1], C[i]);
sol = max(sol, C[i + 1]);
}
cout << sol << endl;
}
int main(void) {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
InputData();
Solve();
return 0;
}'Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| <C/C++> BOJ 15683 ๊ฐ์ (0) | 2022.05.06 |
|---|---|
| <C/C++> BOJ 12100 2048(Easy) (0) | 2022.05.04 |
| <C/C++> BOJ 3190: ๋ฑ (0) | 2022.05.02 |
| <C/C++> BOJ 15685: ๋๋๊ณค ์ปค๋ธ (0) | 2022.04.05 |
| <C/C++> BOJ 15684: ์ฌ๋ค๋ฆฌ ์กฐ์ (0) | 2022.04.05 |