🎉 문제
문제링크
🎉 제한사항
🎉 접근방법
- 구덩이를 -1로 먼저 표시를 해준다.
- (1,1)부터 (n,m) 까지 돌면서 웅덩이일 경우 표시했던 웅덩이를 0으로 바꿔주고 continue해준다.
- 첫행이 아닐 때와 첫열이 아닐 때 그전까지 왔던 수를 저장한다.
- map[n][m]을 리턴한다.
🎉 코드
class Solution {
static int[][] map;
public int solution(int m, int n, int[][] puddles) {
int answer = 0;
map = new int[n+1][m+1];
for(int i=0; i<puddles.length; i++){
int x = puddles[i][0];
int y = puddles[i][1];
map[y][x] = -1;
}
map[1][1] = 1;
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
if(map[i][j] == -1){
map[i][j] = 0;
continue;
}
if(i != 1){
map[i][j] += map[i-1][j]%1000000007;
}
if(j != 1){
map[i][j] += map[i][j-1]%1000000007;
}
}
}
return map[n][m]%1000000007;
}
}