์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ง์ ์ N(2 ≤ N ≤ 1,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๊ฐ ์ง์ ๋นจ๊ฐ, ์ด๋ก, ํ๋์ผ๋ก ์น ํ๋ ๋น์ฉ์ด 1๋ฒ ์ง๋ถํฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ง์ ์น ํ๋ ๋น์ฉ์ 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๋ชจ๋ ์ง์ ์น ํ๋ ๋น์ฉ์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
์ด ๋ฌธ์ ์ ์๊ฐ ์ ํ์ 0.5์ด๋ก ์งง๋ค.
์ค์ฒฉ ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํ ๋ธ๋ฃจํธ ํฌ์ค์ ๋ฐฉ๋ฒ์ผ๋ก ํต๊ณผํ ์ ์๋ค๋ ์๋ฏธ์ด๋ค.
dp๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ ํ์, ์ฆ ๊ท์น์ ์ฐพ์๋ด์ผํ๋ค.
์ ๋ ฅ ๊ฐ์ผ๋ก ํ์ 2 ~ 1000๊น์ง ์ต๋ 999๊ฐ์ ํ์ด ์ฃผ์ด์ง๊ณ ,
์ด์ 0, 1, 2๋ก ์ด 3๊ฐ์ ์ด์ด ์ฃผ์ด์ง๋ค.
์ด ๋ฌธ์ ์ ํต์ฌ์ ํ์ ์ต์ ๊ฐ์ ๋ค์ ํ์ ์์์ ๋ํ๋ ์ด์ด ๊ฐ์ง ์์ ์์์ ๋ํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
์ ๋ ฅ ๊ฐ์ด ์ ์ฅ๋ ๋ฐฐ์ด์ house๋ผ๊ณ ํ์ ๋
์ด๋ฅผ ์ ํ์์ผ๋ก ๊ตฌํํ๋ฉด
dp[n][0] = min(dp[n-1][1], dp[n-1][2]) + house[n][0]
dp[n][1] = min(dp[n-1][0], dp[n-1][2]) + house[n][1]
dp[n][2] = min(dp[n-1][0], dp[n-1][1]) + house[n][2]
๊ฐ ๋๋ค.
์ ๊ณผ์ ์ ๋ชจ๋ ํ์ ๋ํด์ ๋ฐ๋ณตํ๋ฉด ๋ง์ง๋ง ํ์๋ ๊ฐ ์ด์์์ ์ต์๊ฐ๋ค์ด ๋ด๊ฒจ ์๋ค.
์ด ๊ฐ๋ค ์ค์์ ๊ฐ์ฅ ์์ ๊ฐ์ ์ถ๋ ฅํ๋ฉด ์ ๋ต.
ํด๊ฒฐ ๊ณผ์
์ ํ์์ ์ฝ๋๋ก ๊ตฌํํ๊ณ ๋ง์ง๋ง ํ์์ ์ต์๊ฐ์ ์ฐพ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ค.
์ต์ข ์ฝ๋๋
#include <iostream>
using namespace std;
int min(int a, int b){
return a < b ? a : b;
}
int main(){
int n, a, b, c, result;
int house[999][3];
int dp[999][3];
cin >> n;
for(int i = 0; i < n; i++){
cin >> a >> b >> c;
house[i][0] = a;
house[i][1] = b;
house[i][2] = c;
}
dp[0][0] = house[0][0];
dp[0][1] = house[0][1];
dp[0][2] = house[0][2];
for(int i = 1; i < n; i++){
dp[i][0] = min(dp[i-1][1], dp[i-1][2]) + house[i][0];
dp[i][1] = min(dp[i-1][0], dp[i-1][2]) + house[i][1];
dp[i][2] = min(dp[i-1][0], dp[i-1][1]) + house[i][2];
}
result = dp[n-1][0];
for(int i = 1; i < 3; i++){
if (result > dp[n-1][i]){
result = dp[n-1][i];
}
}
cout << result;
return 0;
}
min ํจ์๋ ๋ ์์ ๊ฐ์ return ํด์ฃผ๋ ํจ์์ด๋ค.
'โ๏ธ ์ฝํ ์ค๋น > Dynamic Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋์ ๊ณํ๋ฒ 1] [C++] 2579๋ฒ. ๊ณ๋จ ์ค๋ฅด๊ธฐ (0) | 2021.01.14 |
---|---|
[๋์ ๊ณํ๋ฒ 1] [C++] 1932๋ฒ. ์ ์ ์ผ๊ฐํ (0) | 2021.01.13 |
[๋์ ๊ณํ๋ฒ 1] [C++] 9461๋ฒ. ํ๋๋ฐ ์์ด (0) | 2021.01.13 |
[๋์ ๊ณํ๋ฒ 1] [Python] 1904๋ฒ. 01ํ์ผ (0) | 2021.01.12 |
[๋์ ๊ณํ๋ฒ 1] [Python] 9184๋ฒ. ์ ๋๋ ํจ์ ์คํ (0) | 2021.01.12 |