프로그래머스 등굣길 dp c++ 디버깅
2023. 10. 26. 16:12ㆍ카테고리 없음
코드
#include <string>
#include <vector>
#define DIV
using namespace std;
int arr[101][101];
long long dp[101][101];
#define DIV 1000000007
int solution(int m, int n, vector<vector<int>> puddles) {
int answer = 0;
// 물 표시
for (int i = 0;i < puddles.size();i++) {
int x = puddles[i][0], y = puddles[i][1];
arr[y - 1][x - 1] = -1;
dp[y - 1][x - 1] = 0;
}
if (arr[0][0] != -1) {
dp[0][0] = 1;
}
for (int i = 1;i < n;i++) {
if (arr[i][0] == -1) {
continue;
}
if (dp[i - 1][0] == 0) {
dp[i][0] = 0;
}
else {
dp[i][0] = 1;
}
}
for (int i = 1;i < m;i++) {
if (arr[0][i] == -1) {
continue;
}
if (dp[0][i - 1] == 0) {
dp[0][i] = 0;
}
else {
dp[0][i] = 1;
}
}
// dp
for (int i = 1;i < n;i++) {
for (int j = 1;j < m;j++) {
if (arr[i][j] == -1) continue;
if (arr[i][j - 1] != -1) {
dp[i][j] += (dp[i][j - 1] % DIV);
}
if (arr[i - 1][j] != -1) {
dp[i][j] += (dp[i - 1][j] % DIV);
}
}
}
answer = (dp[n - 1][m - 1] % DIV);
return answer;
}
int main(void) {
solution(4, 3, { {2, 1}, {1, 2} });
return 0;
}
테케 1,9,10 틀리시는분 참고하세요
test case : solution(4, 3, { {2, 1}, {1, 2} });
int main(void) {
solution(4, 3, { {2, 1}, {1, 2} });
return 0;
}
이거 달고 다시 풀어보세요. 올바른 답은 0입니다.
참고 자료 :