티스토리 뷰

1. 문제

https://programmers.co.kr/learn/courses/30/lessons/42898

 

코딩테스트 연습 - 등굣길

계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m =

programmers.co.kr

 

2. 설명

일단 물 웅덩이가 있는 곳은 -1로 표시해줬다 !

그리고 배열을 쭉 살피면서 길을 찾아갔다.

중학교? 고등학교? 때 배운 길찾기 문제를 코드로 옮기는 듯한 문제였다.

 

3. 코드

class Solution {
    public int solution(int m, int n, int[][] puddles) {
        int answer = 0;
        int[][] route = new int[n][m];
        int mod = 1000000007;
        
        route[0][0] = 1;
        // 웅덩이
        for(int[] puddle : puddles) {
            route[puddle[1]-1][puddle[0]-1] = -1;
        }
        
        for(int i=0; i<n; i++) {
            for(int j=0; j<m; j++) {
                if(route[i][j]==-1) { // 웅덩이
                    route[i][j] = 0;
                    continue;
                }
                if(i!=0) {
                    route[i][j] += route[i-1][j] % mod;
                }
                if(j!=0) {
                    route[i][j] += route[i][j-1] % mod;
                }
            }
        }
        answer = route[n-1][m-1] % mod;
        
        return answer;
    }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday