반응형
728x170
이것 내가 현재 칸에 있다면 어떤 칸을 거쳐서 오는 것이 좋은가?
어느 칸에서 올 수 있는가?
현재 칸을 오면 사탕개수가 어떻게 되는가?
를 생각하자
https://www.acmicpc.net/problem/11048
#맞는 풀이
#include <iostream>
#include <algorithm>
using namespace std;
const int MAX = 1001;
int N, M;
int map[MAX][MAX];
int dp[MAX][MAX];
int main() {
cin >> N >> M;
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= M; j++) {
cin >> map[i][j];
}
}
//초기 값 1행과 1열 값 초기화 (0행, 0열의 성분은 0임)
dp[1][1] = map[1][1];
//1행
for (int i = 2; i <= M; i++) {
dp[1][i] += dp[1][i - 1] + map[1][i];
}
//1열
for (int i = 2; i <= N; i++) {
dp[i][1] += dp[i - 1][1] + map[i][1];
}
for (int i = 2; i <= N; i++) {
for (int j = 2; j <= M; j++) {
dp[i][j] = max({ dp[i - 1][j], dp[i - 1][j - 1], dp[i][j - 1]}) + map[i][j];
}
}
/*
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= M; j++) {
cout << dp[i][j] << " ";
}
cout << '\n';
}
*/
cout << dp[N][M];
return 0;
}
728x90
반응형
그리드형
'문제풀이(Problem Solving)' 카테고리의 다른 글
백준, BOJ, 2565번, 전깃줄 : C++ [CPP] (0) | 2021.12.31 |
---|---|
백준, BOJ, 11054번, 가장 긴 바이토닉 부분 수열 : C++ [CPP] (0) | 2021.12.31 |
백준, BOJ, 11053번, 가장 긴 증가하는 부분 수열 : C++ [CPP] (0) | 2021.12.29 |
백준, BOJ, 11057번, 오르막 수 : C++ [CPP] (0) | 2021.12.28 |
백준, BOJ, 11057번, 오르막 수 : C++ [CPP] (0) | 2021.12.28 |