본문 바로가기

프로그래머스/동적계획법

등굣길

728x90

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

 

코딩테스트 연습 - 등굣길

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

programmers.co.kr

#include <string>
#include <vector>
#include <algorithm>
using namespace std;


int solution(int m, int n, vector<vector<int>> puddles) {
    int answer = 0;
    
    int map[105][105] = {0,};
     for(int j=1; j<=m; j++){
        map[1][j] = 1;
    }
    
    for(int i=1; i<=n; i++){
        map[i][1]=1;
    }
    
     for(int i=0; i<puddles.size(); i++){
        int y = puddles[i][0];
        int x = puddles[i][1];
        map[x][y] = -1; //개수
     }
    
    for(int p=1; p<=n; p++){
        for(int q=1; q<=m; q++){
            
            if(p==1 && q==1){continue;}
            if(map[p][q]!=-1){
               map[p][q]= (map[p-1][q]+ map[p][q-1])%1000000007;
            }
            else{map[p][q]=0;}
          }
        }
    
    answer = map[n][m];
    return answer;
}

'프로그래머스 > 동적계획법' 카테고리의 다른 글

가장 긴 팰린드롬  (0) 2021.02.17
풍선 터트리기  (0) 2021.02.05
정수 삼각형  (0) 2021.01.28
N으로 표현  (0) 2021.01.28
땅따먹기  (0) 2021.01.22