Doby's Lab

백준 14430번: 자원 캐기 (C++) 본문

PS/BOJ

백준 14430번: 자원 캐기 (C++)

도비(Doby) 2022. 11. 5. 22:06

https://www.acmicpc.net/problem/14430

 

14430번: 자원 캐기

인류의 차세대 인공지능 자원 캐기 로봇인 WOOK은 인간 대신 자원을 캐는 로봇이다. WOOK은 언제나 제한된 범위 내에서 자원을 탐색하며, 왼쪽 위 (1, 1)부터 오른쪽 아래 (N, M)까지 자원을 탐색한다.

www.acmicpc.net


Solved By: DP

 

간단한 점화식으로 구성됩니다.

현재 좌표값이 1일 경우

cache[i][j] = max(cache[i - 1][j], cache[i][j - 1]) + 1

현재 좌표값이 0일 경우

cache[i][j] = max(cache[i - 1][j], cache[i][j - 1])

#include <iostream>
#define MAX 301
using namespace std;

int N, M;

int wook[MAX][MAX];
int cache[MAX][MAX];

int main(){
    cin >> N >> M;
    
    for(int i = 1; i <= N; i++){
        for(int j = 1; j <= M; j++){
            cin >> wook[i][j];
        }
    }
    
    for(int i = 1; i <= N; i++){
        for(int j = 1; j <= M; j++){
            if(wook[i][j] == 1){
                cache[i][j] = max(cache[i - 1][j], cache[i][j - 1]) + 1;
            }
            else{
                cache[i][j] = max(cache[i - 1][j], cache[i][j - 1]);
            }
        }
    }
    
    cout << cache[N][M];
    return 0;
}

 

728x90