https://www.acmicpc.net/problem/14501
๋ฌธ์
์๋ด์์ผ๋ก ์ผํ๊ณ ์๋ ๋ฐฑ์ค์ด๋ ํด์ฌ๋ฅผ ํ๋ ค๊ณ ํ๋ค.
์ค๋๋ถํฐ N+1์ผ์งธ ๋๋ ๋ ํด์ฌ๋ฅผ ํ๊ธฐ ์ํด์, ๋จ์ N์ผ ๋์ ์ต๋ํ ๋ง์ ์๋ด์ ํ๋ ค๊ณ ํ๋ค.
๋ฐฑ์ค์ด๋ ๋น์์๊ฒ ์ต๋ํ ๋ง์ ์๋ด์ ์ก์ผ๋ผ๊ณ ๋ถํ์ ํ๊ณ , ๋น์๋ ํ๋ฃจ์ ํ๋์ฉ ์๋ก ๋ค๋ฅธ ์ฌ๋์ ์๋ด์ ์ก์๋์๋ค.
๊ฐ๊ฐ์ ์๋ด์ ์๋ด์ ์๋ฃํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ๊ธฐ๊ฐ Ti์ ์๋ด์ ํ์ ๋ ๋ฐ์ ์ ์๋ ๊ธ์ก Pi๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
N = 7์ธ ๊ฒฝ์ฐ์ ๋ค์๊ณผ ๊ฐ์ ์๋ด ์ผ์ ํ๋ฅผ ๋ณด์.
1์ผ2์ผ3์ผ4์ผ5์ผ6์ผ7์ผTiPi3 | 5 | 1 | 1 | 2 | 4 | 2 |
10 | 20 | 10 | 20 | 15 | 40 | 200 |
1์ผ์ ์กํ์๋ ์๋ด์ ์ด 3์ผ์ด ๊ฑธ๋ฆฌ๋ฉฐ, ์๋ดํ์ ๋ ๋ฐ์ ์ ์๋ ๊ธ์ก์ 10์ด๋ค. 5์ผ์ ์กํ์๋ ์๋ด์ ์ด 2์ผ์ด ๊ฑธ๋ฆฌ๋ฉฐ, ๋ฐ์ ์ ์๋ ๊ธ์ก์ 15์ด๋ค.
์๋ด์ ํ๋๋ฐ ํ์ํ ๊ธฐ๊ฐ์ 1์ผ๋ณด๋ค ํด ์ ์๊ธฐ ๋๋ฌธ์, ๋ชจ๋ ์๋ด์ ํ ์๋ ์๋ค. ์๋ฅผ ๋ค์ด์ 1์ผ์ ์๋ด์ ํ๊ฒ ๋๋ฉด, 2์ผ, 3์ผ์ ์๋ ์๋ด์ ํ ์ ์๊ฒ ๋๋ค. 2์ผ์ ์๋ ์๋ด์ ํ๊ฒ ๋๋ฉด, 3, 4, 5, 6์ผ์ ์กํ์๋ ์๋ด์ ํ ์ ์๋ค.
๋ํ, N+1์ผ์งธ์๋ ํ์ฌ์ ์๊ธฐ ๋๋ฌธ์, 6, 7์ผ์ ์๋ ์๋ด์ ํ ์ ์๋ค.
ํด์ฌ ์ ์ ํ ์ ์๋ ์๋ด์ ์ต๋ ์ด์ต์ 1์ผ, 4์ผ, 5์ผ์ ์๋ ์๋ด์ ํ๋ ๊ฒ์ด๋ฉฐ, ์ด๋์ ์ด์ต์ 10+20+15=45์ด๋ค.
์๋ด์ ์ ์ ํ ํ์ ๋, ๋ฐฑ์ค์ด๊ฐ ์ป์ ์ ์๋ ์ต๋ ์์ต์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N (1 ≤ N ≤ 15)์ด ์ฃผ์ด์ง๋ค.
๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ Ti์ Pi๊ฐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด์ ์ฃผ์ด์ง๋ฉฐ, 1์ผ๋ถํฐ N์ผ๊น์ง ์์๋๋ก ์ฃผ์ด์ง๋ค. (1 ≤ Ti ≤ 5, 1 ≤ Pi ≤ 1,000)
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๋ฐฑ์ค์ด๊ฐ ์ป์ ์ ์๋ ์ต๋ ์ด์ต์ ์ถ๋ ฅํ๋ค.
ํ์ด
๋ฐฑํธ๋ํน(์ฌ๊ทํจ์) ๋ฌธ์
๊ฐ ๋ ์ง๋ง๋ค ์๋ด ํ๋ ๊ฒฝ์ฐ์ ์ํ๋ ๊ฒฝ์ฐ๋ฅผ ์ ๋ถ ๊ณ์ฐํด์ฃผ๋ฉด ๋
// ํ์ด : https://whkakrkr.tistory.com
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n;
vector<int> ans;
void recur(vector<int>&t, vector<int>&p, int day, int money) {
if(day>=n) {
ans.push_back(money);
return;
}
int next = day+t[day];
if(next<=n) {
recur(t, p, next, money+p[day]); // ์๋ด ํ๋ค
}
recur(t, p, day+1, money); // ์๋ด ์ํ๋ค
}
int main() {
cin >> n;
vector<int>t(n);
vector<int>p(n);
for(int i=0; i<n; i++) {
cin >> t[i] >> p[i];
}
recur(t, p, 0, 0);
cout << *max_element(ans.begin(), ans.end());
return 0;
}
'๐๏ธ ICPC Sinchon > Backtracking' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 23057๋ฒ: ๋์ ์ซ์์ (4) | 2024.10.18 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 9997๋ฒ: ํฐํธ (0) | 2024.10.16 |
[BOJ][C++] ๋ฐฑ์ค 1497๋ฒ: ๊ธฐํ์ฝ์ํธ (0) | 2024.08.17 |
[BOJ][C++] ๋ฐฑ์ค 1759๋ฒ: ์ํธ ๋ง๋ค๊ธฐ (0) | 2023.11.22 |
[BOJ][C++] ๋ฐฑ์ค 14888๋ฒ: ์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ (0) | 2023.07.06 |