매일 C++ day 13 / 등굣길

2021-06-10

등굣길


int cache[101][101];

int dp(int x, int y)
{
    if(cache[x][y] != -1) return cache[x][y];
    return cache[x][y] = dp(x+1, y) + dp(x, y+1);
}

int solution(int m, int n, vector<vector<int>> puddles) 
{
    for(int i=0; i<n+1; i++)
        memset(cache[i], -1, (m+1)*sizeof(int));
    cache[n-1][m] = 1, cache[n][m-1] = 1;
    for(int i=0; i<puddles.size(); i++)
        cache[puddles[i][1]][puddles[i][0]] = 0;

	dp(1,1);
}