https://www.acmicpc.net/problem/11048
๋ฌธ์
์ค๊ท๋ N×M ํฌ๊ธฐ์ ๋ฏธ๋ก์ ๊ฐํ์๋ค. ๋ฏธ๋ก๋ 1×1ํฌ๊ธฐ์ ๋ฐฉ์ผ๋ก ๋๋์ด์ ธ ์๊ณ , ๊ฐ ๋ฐฉ์๋ ์ฌํ์ด ๋์ฌ์ ธ ์๋ค. ๋ฏธ๋ก์ ๊ฐ์ฅ ์ผ์ชฝ ์ ๋ฐฉ์ (1, 1)์ด๊ณ , ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ซ ๋ฐฉ์ (N, M)์ด๋ค.
์ค๊ท๋ ํ์ฌ (1, 1)์ ์๊ณ , (N, M)์ผ๋ก ์ด๋ํ๋ ค๊ณ ํ๋ค. ์ค๊ท๊ฐ (r, c)์ ์์ผ๋ฉด, (r+1, c), (r, c+1), (r+1, c+1)๋ก ์ด๋ํ ์ ์๊ณ , ๊ฐ ๋ฐฉ์ ๋ฐฉ๋ฌธํ ๋๋ง๋ค ๋ฐฉ์ ๋์ฌ์ ธ์๋ ์ฌํ์ ๋ชจ๋ ๊ฐ์ ธ๊ฐ ์ ์๋ค. ๋, ๋ฏธ๋ก ๋ฐ์ผ๋ก ๋๊ฐ ์๋ ์๋ค.
์ค๊ท๊ฐ (N, M)์ผ๋ก ์ด๋ํ ๋, ๊ฐ์ ธ์ฌ ์ ์๋ ์ฌํ ๊ฐ์์ ์ต๋๊ฐ์ ๊ตฌํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋ฏธ๋ก์ ํฌ๊ธฐ N, M์ด ์ฃผ์ด์ง๋ค. (1 ≤ N, M ≤ 1,000)
๋์งธ ์ค๋ถํฐ N๊ฐ ์ค์๋ ์ด M๊ฐ์ ์ซ์๊ฐ ์ฃผ์ด์ง๋ฉฐ, r๋ฒ์งธ ์ค์ c๋ฒ์งธ ์๋ (r, c)์ ๋์ฌ์ ธ ์๋ ์ฌํ์ ๊ฐ์์ด๋ค. ์ฌํ์ ๊ฐ์๋ 0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ค๊ท๊ฐ (N, M)์ผ๋ก ์ด๋ํ ๋, ๊ฐ์ ธ์ฌ ์ ์๋ ์ฌํ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด
// Authored by : seondal
// Co-authored by : -
// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
using namespace std;
int maxCandy(int n, int m, vector<vector<int>> &candy) {
vector<vector<int>> dp (n, vector<int>(m,0)); // dp[i][j] = {i,j} ๊น์ง ์ฌ๋ ์ป์ ์ ์๋ ์ฌํ์ ์ต๋ ๊ฐฏ์
// 0๋ฒ์งธ ํ๊ณผ 0๋ฒ์จฐ ์ด (=์ฌ ์ ์๋ ๊ธธ์ด ํ๊ฐ์ง๋ฐ์ ์๋ ๊ฒฝ์ฐ๋ค) ๊ตฌํด๋๊ธฐ
dp[0][0] = candy[0][0];
for(int i=1; i<m; i++)
dp[0][i] = candy[0][i] + dp[0][i-1];
for(int i=1; i<n; i++)
dp[i][0] = candy[i][0] + dp[i-1][0];
for(int i=1; i<n; i++) {
for(int j=1; j<m; j++) {
// {i,j}์ ์ฌ ์ ์๋ ์ธ๊ฐ์ง ๊ธธ ์ค ์ต๋๊ฐ
int maxTmp = max({dp[i-1][j], dp[i][j-1], dp[i-1][j-1]});
dp[i][j] = candy[i][j] + maxTmp;
}
}
return dp[n-1][m-1];
}
int main() {
int n, m;
cin >> n >> m;
vector<vector<int>> candy (n, vector<int>(m,0));
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
cin >> candy[i][j];
cout << maxCandy(n, m, candy);
return 0;
}
/*
*/
'๐๏ธ ICPC Sinchon > Dynamic Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 2748๋ฒ: ํผ๋ณด๋์น ์ 2 (0) | 2023.01.30 |
---|---|
[BOJ S1][C++] ๋ฐฑ์ค 2156๋ฒ: ํฌ๋์ฃผ ์์ (0) | 2022.09.30 |
[BOJ S2][C++] ๋ฐฑ์ค 11053๋ฒ: ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด (0) | 2022.09.28 |
[BOJ][C++] ๋ฐฑ์ค 12865๋ฒ: ํ๋ฒํ ๋ฐฐ๋ญ (0) | 2022.09.27 |
[BOJ][C++] ๋ฐฑ์ค 2579๋ฒ: ๊ณ๋จ ์ค๋ฅด๊ธฐ (0) | 2022.09.27 |