๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 11049๋ฒˆ - ํ–‰๋ ฌ ๊ณฑ์…ˆ ์ˆœ์„œ

by dkswnkk 2021. 10. 26.
 

11049๋ฒˆ: ํ–‰๋ ฌ ๊ณฑ์…ˆ ์ˆœ์„œ

์ฒซ์งธ ์ค„์— ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ํ–‰๋ ฌ์„ ๊ณฑํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ณฑ์…ˆ ์—ฐ์‚ฐ์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ •๋‹ต์€ 231-1 ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋˜ํ•œ, ์ตœ์•…์˜ ์ˆœ์„œ๋กœ ์—ฐ์‚ฐํ•ด๋„ ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ 231-1๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™

www.acmicpc.net

#include <iostream>
#define INF 1e9
/*
(i<=k<=j-1)
dp[i][j]=min(dp[i][k]+dp[k+1][j]+d[i-1]*d[k]*d[j])
*/
int dp[501][501];
int r[501],c[501];
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int N; cin>>N;
for (int i=0; i<N; i++){
dp[i][i]=0;
}
for(int i=0; i<N; i++){
cin>>r[i]>>c[i];
}
for(int cnt=1; cnt<N; cnt++){
for(int i=0; i<=N-cnt; i++){
int j=i+cnt;
dp[i][j]=INF;
for(int k=i; k<j; k++){
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+r[i]*r[k+1]*c[j]);
}
}
}
cout<<dp[0][N-1];
}

GitHub

LinkedIn

GitHub

LinkedIn