ใ๋ชฉ์ฐจใ
0. ๊ฐ์
1. ๋ฌธ์
2. ํ์ด
3. ์ฝ๋
0. ๊ฐ์
๋์ ํ๋ก๊ทธ๋๋ฐ(Dynamic Programming) ๋ฌธ์ . 17404๋ฒ RGB๊ฑฐ๋ฆฌ2 ๋ฌธ์ ์ ์ธํธ๋ฌธ์ ์ด๋ค.
RGB๊ฑฐ๋ฆฌ1(1149๋ฒ)๋ฌธ์ ๋ ์ ํ๋ฐฐ์น๋ฌธ์ ๋ผ ํ ์ ์๊ณ , RGB๊ฑฐ๋ฆฌ2(17404๋ฒ)๋ฌธ์ ๋ ์ํ๋ฐฐ์น๋ฌธ์ ๋ผ ํ ์ ์๋ค.
1. ๋ฌธ์
[๋ฌธ์ ]
RGB๊ฑฐ๋ฆฌ์๋ ์ง์ด N๊ฐ ์๋ค. ๊ฑฐ๋ฆฌ๋ ์ ๋ถ์ผ๋ก ๋ํ๋ผ ์ ์๊ณ , 1๋ฒ ์ง๋ถํฐ N๋ฒ ์ง์ด ์์๋๋ก ์๋ค.
์ง์ ๋นจ๊ฐ, ์ด๋ก, ํ๋ ์ค ํ๋์ ์์ผ๋ก ์น ํด์ผ ํ๋ค. ๊ฐ๊ฐ์ ์ง์ ๋นจ๊ฐ, ์ด๋ก, ํ๋์ผ๋ก ์น ํ๋ ๋น์ฉ์ด ์ฃผ์ด์ก์ ๋, ์๋ ๊ท์น์ ๋ง์กฑํ๋ฉด์ ๋ชจ๋ ์ง์ ์น ํ๋ ๋น์ฉ์ ์ต์๊ฐ์ ๊ตฌํด๋ณด์.
- 1๋ฒ ์ง์ ์์ 2๋ฒ ์ง์ ์๊ณผ ๊ฐ์ง ์์์ผ ํ๋ค.
- N๋ฒ ์ง์ ์์ N-1๋ฒ ์ง์ ์๊ณผ ๊ฐ์ง ์์์ผ ํ๋ค.
- i(2 ≤ i ≤ N-1)๋ฒ ์ง์ ์์ i-1๋ฒ, i+1๋ฒ ์ง์ ์๊ณผ ๊ฐ์ง ์์์ผ ํ๋ค.
[์ ๋ ฅ]
์ฒซ์งธ ์ค์ ์ง์ ์ N(2 ≤ N ≤ 1,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๊ฐ ์ง์ ๋นจ๊ฐ, ์ด๋ก, ํ๋์ผ๋ก ์น ํ๋ ๋น์ฉ์ด 1๋ฒ ์ง๋ถํฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ง์ ์น ํ๋ ๋น์ฉ์ 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
[์ถ๋ ฅ]
์ฒซ์งธ ์ค์ ๋ชจ๋ ์ง์ ์น ํ๋ ๋น์ฉ์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
[์์ ์ ๋ ฅ 1]
3
26 40 83
49 60 57
13 89 99
[์์ ์ถ๋ ฅ 1]
96
[์์ ์ ๋ ฅ 2]
3
1 100 100
100 1 100
100 100 1
[์์ ์ถ๋ ฅ 2]
3
[์์ ์ ๋ ฅ 3]
3
1 100 100
100 100 100
1 100 100
[์์ ์ถ๋ ฅ 3]
102
[์์ ์ ๋ ฅ 4]
6
30 19 5
64 77 64
15 19 97
4 71 57
90 86 84
93 32 91
[์์ ์ถ๋ ฅ 4]
208
[์์ ์ ๋ ฅ 5]
8
71 39 44
32 83 55
51 37 63
89 29 100
83 58 11
65 13 15
47 25 29
60 66 19
[์์ ์ถ๋ ฅ 5]
253
2. ํ์ด
Bottom Up(์ํฅ์) ๋ฐฉ์์ ํตํด ํ์๋ค.
table ๋ฐฐ์ด์ ๊ฐฑ์ ๋๋ ๊ฐ์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ์๋ฆฌ๋ฅผ ๋ฐ๋ฅธ๋ค.
๋งจ ๋ง์ง๋ง ๊ฐ์ด ๊ฐฑ์ ๋๋ฉด, ๋ฐฐ์ด ์ ์ผ ์๋์ชฝ์ 3๊ฐ์ ๊ฐ ์ค ์ต์๊ฐ์ ๊ตฌํด ์ถ๋ ฅํ๋ฉด ๋๋ค.
3. ์ฝ๋
#pragma warning(disable:4996)
#include <stdio.h>
#define min(a,b) (((a) < (b)) ? (a) : (b))
int table[1001][3] = {}; //R=0, G=1, B=2
int main(int argc, char* argv[]) {
/* Input */
int N; scanf("%d", &N);
for (int i = 1; i <= N; i++)
scanf("%d %d %d", &table[i][0], &table[i][1], &table[i][2]);
/* DP */
for (int i = 2; i <= N; i++) {
table[i][0] += min(table[i - 1][1], table[i - 1][2]);
table[i][1] += min(table[i - 1][0], table[i - 1][2]);
table[i][2] += min(table[i - 1][0], table[i - 1][1]);
}
/* Output */
printf("%d", min(table[N][0], min(table[N][1], table[N][2])));
/* End */
return 0;
}
'ใโจ๏ธแดsใPS > ๋ฐฑ์ค_๋์ ํ๋ก๊ทธ๋๋ฐ[DP]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon/๋ฐฑ์ค][17404][C/C++] RGB๊ฑฐ๋ฆฌ 2 (0) | 2023.02.20 |
---|