반응형
문제
준규는 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)으로 이동할 때, 가져올 수 있는 사탕 개수의 최댓값을 구하시오.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int dp[1001][1001];
int candy[1001][1001];
int n, m;
void move() {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
dp[i][j] = max(dp[i][j - 1], dp[i - 1][j]) + candy[i][j];
}
}
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> candy[i][j];
}
}
move();
cout << dp[n][m];
}
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[ C / C++ ] 백준 11561 징검다리 (0) | 2022.05.01 |
---|---|
[ C / C++ ] 백준 11399 ATM (0) | 2022.04.30 |
[ C / C++ ] 백준 10998 AXB (0) | 2022.04.28 |
[ C / C++ ] 백준 10950 A+B-3 (0) | 2022.04.27 |
[ C / C++ ] 백준 10926 ??! (0) | 2022.04.26 |