๋์ด๋ : ์ค๋ฒ 1
๊ฑธ๋ฆฐ ์๊ฐ : 30๋ถ
๋ฌธ์
ํ์ด
- ์ต์ข ์ ์ผ๋ก ๊ตฌํ๊ณ ์ ํ๋ ๊ฒ : ์์ชฝ๊ณผ ์์ด ๊ฐ์ง ์์ ์ง์ผ๋ก ๋ชจ๋ ์ง์ ์น ํ๋ ๋น์ฉ์ ์ต์๊ฐ
- ๋ถ๋ถ ๋ฌธ์ : ํ์ฌ ์ง์์ ๋น์ฉ์ ์ต์๊ฐ
- ์ฌ๊ท (์ง์ index, ์ง์ ์๊น) => ๋น์ฉ์ ์ต์๊ฐ
- ํ์ฌ ์ง์ ์น ํ๋ ๋ฐ์ ๋๋ ๋น์ฉ์ ์ต์ = 3๊ฐ์ง ์ ์ค์ ์ต์ = ์ง๊ธ์ ๊ฐ + ์ค๋ฅธ์ชฝ ์ง์ ์ต์๊ฐ
- ์กฐ๊ฑด
- ์ค๋ฅธ์ชฝ ์ง์ ์์ด ๊ฒน์น์ง ์์์ผํจ
- for๋ฌธ์์ ์์ด ๊ฒน์น๋ฉด continue
- ๋ง์ง๋ง ์ง์ ์ค๋ฅธ์ชฝ ์ง์ด ์์ผ๋ฏ๋ก ๊ฐ๊ฒฉ์ด ๊ทธ ์์ฒด๋ก ์ต์๊ฐ
- memo์ ๋ฏธ๋ฆฌ ์ ์ฅํด๋๋ ๊ฒ์ผ๋ก ํด๊ฒฐ
- ์ค๋ฅธ์ชฝ ์ง์ ์์ด ๊ฒน์น์ง ์์์ผํจ
- DP ์ฌ์ฉ
- ๊ฒน์น๋ ๋ถ๋ถ : ํ์ฌ ์ง์ ์์์ ๋ํ๋๋ ๋น์ฉ์ ์ต์๊ฐ
- (index, color) => ์ต์
- ์ ์ฅ์ R, G, B color ๊ฐ๊ฐ์ ๋ชจ๋ ํด์ผํ๋ฏ๋ก ์ฃผ์ด์ง ๋ฐฐ์ด๊ณผ ๊ฐ์ด ์ด์ด 3์ธ 2์ฐจ์ ๋ฐฐ์ด๋ก ํํ
- ๊ฒน์น๋ ๋ถ๋ถ : ํ์ฌ ์ง์ ์์์ ๋ํ๋๋ ๋น์ฉ์ ์ต์๊ฐ
์ฝ๋
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
int N;
int house[1000][3];
int memo[1000][3];
int lowestValue(int idx, int color) {
int value = 1e9;
for (int i = 0; i < 3; i++) {
if (color == i) // ์ด์ ์๊ณผ ๋๊ฐ์ง ์๊ฒ
continue;
int tmp;
if (memo[idx+1][i] != -1) {
// ์ด๋ฏธ ํ์ผ๋ฉด
tmp = house[idx][color] + memo[idx+1][i];
}
else {
tmp = house[idx][color] + lowestValue(idx + 1, i);
}
value = tmp < value ? tmp : value; // RGB ์ค ์ต์๊ฐ ์ฐพ๊ธฐ
}
memo[idx][color] = value;
return value;
}
int main() {
// ์
๋ ฅ ๋ฐ๊ธฐ
cin >> N;
for (int i = 0; i < N; i++) {
for (int j = 0; j < 3; j++) {
cin >> house[i][j];
}
}
// ์ด๊ธฐํ
memset(memo, -1, sizeof(memo));
for (int i = 0; i < 3; i++) {
// ๋ง์ง๋ง ์ง์ ๋ค์ ์ง์ด ์์ผ๋ฏ๋ก memo ๋ฏธ๋ฆฌ ๋ฑ๋ก
memo[N - 1][i] = house[N - 1][i];
}
int answer = 1e9;
for (int i = 0; i < 3; i++) {
// ์ฒซ๋ฒ์งธ ์ง RGB์ ๋ํด ๋ชจ๋ ์กฐ์ฌ
int tmp = lowestValue(0, i);
answer = answer < tmp ? answer : tmp;
}
cout << answer;
}
๊ฒฐ๊ณผ
DP ๋ฌธ์ ๋ฅผ ์ข ๋ ํ์ด๋ด์ผํ ๊ฒ ๊ฐ์์ ํ์ด๋ดค๋๋ฐ, ์ด์ ์ ๋ฌธ์ ๋ฅผ ํ์์ ๋์ ๋น๊ตํด์ ํจ์ฌ ๋์์ก๋ค.
๋ฐ์ํ
'Algorithm ๋ฌธ์ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[c++] BOJ 1005 :: ACM Craft (0) | 2021.03.21 |
---|---|
[c++] BOJ 2225 :: ํฉ๋ถํด (0) | 2021.03.21 |
[c++] BOJ 1520 :: ๋ด๋ฆฌ๋ง๊ธธ (0) | 2021.03.12 |
[c++] BOJ 12865 :: ํ๋ฒํ ๋ฐฐ๋ญ (0) | 2021.03.12 |
[c++] BOJ 11054 :: ๊ฐ์ฅ ๊ธด ๋ฐ์ดํ ๋ ๋ถ๋ถ ์์ด (1) | 2021.03.06 |
Comment