#include <vector> using namespace std; int MOD = 20170805; // 전역 변수를 정의할 경우 함수 내에 초기화 코드를 꼭 작성해주세요. int solution(int m, int n, vector<vector<int>> city_map) { int answer = 0; int dp[510][510][2] = {0}; // 0 왼쪽, 1 위쪽 int row = city_map.size(); int col = city_map[0].size(); for(int i = 0; i < row; i++) { if(city_map[i][0] == 1) { break; } dp[i][0][1] = 1; } for(int i = 0; i < col; i++) { if(city_map[0][i] == 1) { break; } dp[0][i][0] = 1; } for(int i = 1; i < row; i++) { for(int j = 1; j < col; j++) { if(city_map[i-1][j] == 0) { dp[i][j][1] += (dp[i-1][j][0] + dp[i-1][j][1]) % MOD; } else if(city_map[i-1][j] == 2) { dp[i][j][1] += (dp[i-1][j][1] % MOD); } if(city_map[i][j-1] == 0) { dp[i][j][0] += (dp[i][j-1][0] + dp[i][j-1][1]) % MOD; } else if(city_map[i][j-1] == 2) { dp[i][j][0] += (dp[i][j-1][0] % MOD); } } } return (dp[row-1][col-1][0] + dp[row-1][col-1][1]) % MOD; } | cs |
'Programmers > Level 3' 카테고리의 다른 글
[프로그래머스 3] 기둥과 보 (C/C++) (★★★) (0) | 2020.03.08 |
---|---|
[프로그래머스 3] 거스름돈 (C/C++) (★) (0) | 2020.03.07 |
[프로그래머스 3] 가장 긴 팰린드롬 (C/C++) (★★) (0) | 2020.03.07 |
[프로그래머스 3] 종이접기 (C/C++) (★) (0) | 2020.03.06 |
[프로그래머스 3] 2xN 타일링 (C/C++) (0) | 2020.03.06 |