[프로그래머스][등굣길]-Lv.3

호준·2022년 11월 22일
0

Algorithm

목록 보기
107/111
post-thumbnail

🎉 문제

문제링크

🎉 제한사항

🎉 접근방법

  1. 구덩이를 -1로 먼저 표시를 해준다.
  2. (1,1)부터 (n,m) 까지 돌면서 웅덩이일 경우 표시했던 웅덩이를 0으로 바꿔주고 continue해준다.
  3. 첫행이 아닐 때와 첫열이 아닐 때 그전까지 왔던 수를 저장한다.
  4. 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;
    }
}
profile
도전하자

0개의 댓글