[프로그래머스] 등굣길

leejihun·2022년 11월 25일
0

알고리즘

목록 보기
45/50

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

#include <string>
#include <vector>

using namespace std;
bool bWater[101][100];
int dp[101][101] = { 0, };

int solution(int m, int n, vector<vector<int>> puddles)
{
    dp[1][1] = 1;
    for(int i=0; i<puddles.size(); i++)
    {                        //0.0 0.1 /x/y
        //0.0 0.1  1.0 1.1 // 2 2  0.1
        int iX = puddles[i][0];
        int iY = puddles[i][1]; //웅덩이좌표
        dp[iY][iX] = -1;
    }
    
  for(int i = 1; i <= n; i++)
  {
        for(int j = 1; j <= m; j++)
        {
            if(i==1 && j==1)
                continue;
            
            if(dp[i][j] == -1)
                dp[i][j] = 0;
            
            else
                dp[i][j] = (dp[i][j-1] + dp[i-1][j])  % 1000000007;
        }
    }
   int answer = dp[n][m];
    return answer;
}

dp문제 점화식 세우면 역시 간단한 것 같다.

좌표랑 행렬 xy축 항상 헷갈리니까 조심하자

profile
U+221E

0개의 댓글