(๋ฐฑ์ค/ C++) 11049 - ํ๋ ฌ ๊ณฑ์
์์ / ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ๐ coding test/โฝ ๋ฐฑ์ค2024. 7. 18. 12:48
Table of Contents
728x90
๋ฐ์ํ
"(๋ฐฑ์ค/ C++) 11049 - ํ๋ ฌ ๊ณฑ์ ์์ / ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ"
ํด๋ํด๋ ์ด๋ ค์ด DP .. ํผ์ ๋ชป ํ์๋ค. ์ ํฌ๋ธ ์ค๋ช ๋ณด๊ณ ํ์๋ค .. ใ ใ
ํต์ฌ์ AEH ์ฌ์ด์ (ABCDE) (FGH)๊ฐ ์ด๋ ํ ๋ฐฉ๋ฒ์ผ๋ก ์ฐ์ฐ์ ํ๋ ์ง ๊ฐ์ (ABCDE) ์ ์ต์ข ํ๋ ฌ์ ํฌ๊ธฐ๋ { a , f } (FGH)์ ์ต์ข ํ๋ ฌ ํฌ๊ธฐ๋ { f , i }๊ฐ ๋๋ค. ๋ผ๋ ์ฌ์ค์ด๋ค.
์ ํ์: a x f x i + Func(x , k) + Func (k+1, y)
//== [ ํ๋ ฌ ๊ณฑ์
์์ ] ==
#include <iostream>
#include <limits>
#include <algorithm>
using namespace std;
int col[500], row[500];
int dp[500][500];
int func(int idx_x, int idx_y)
{
if (dp[idx_x][idx_y])
return dp[idx_x][idx_y];
if (idx_x == idx_y)
return 0;
int mm = INT_MAX;
for (int j = idx_x; j < idx_y; ++j)
// (j == idx_x) ๊ฒฝ์ฐ๋ ABCD ์๋ค๋ฉด AB๊ฒฝ์ฐ.
{
mm = min(mm, row[idx_x] * col[j] * col[idx_y] + func(idx_x, j) + func(j + 1, idx_y));
}
return dp[idx_x][idx_y] = mm;
}
int main(void)
{
int n;
cin >> n;
for (int i = 0; i < n; ++i)
cin >> row[i] >> col[i];
cout << func(0, n - 1);
return 0;
}
728x90
๋ฐ์ํ
'๐ coding test > โฝ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(๋ฐฑ์ค/ C++) 9095 - 1, 2, 3 ๋ํ๊ธฐ / ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ, ์ฌ๊ท (0) | 2024.07.19 |
---|---|
(๋ฐฑ์ค/ C++) 1520 - ๋ด๋ฆฌ๋ง๊ธธ / ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (1) | 2024.07.18 |
(๋ฐฑ์ค/ C++) 7579 - ์ฑ / ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (0) | 2024.07.12 |
(๋ฐฑ์ค/ C++) 1106 - ํธํ / ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (0) | 2024.07.11 |
(๋ฐฑ์ค/ C++) 2629 - ์ํ์ ์ธ (0) | 2024.07.09 |
@DoctorSunAhna :: ํํฌ์ฝ๋ฅ
์ ํ๋ ๊ฒ ๋ณด๋ค ๋ซ๊ฒ ์ง
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!