매일 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);
}