Algorithm/BAEKJOON

[ C / C++ ] 백준 11048 이동하기

곽수진 2022. 4. 29. 17:55
반응형

문제

준규는 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