#include <string>
#include <cstring>
#include <vector>
using namespace std;
int solution(int m, int n, vector<vector<int>> puddles) {
vector<vector<int>> lists(n + 1, vector<int>(m + 1, 1));
for(int i = 0; i <= m; i++)
lists[0][i] = 0;
for(int i = 0; i <= n; i++)
lists[i][0] = 0;
for(int i = 0; i < puddles.size(); i++)
lists[puddles[i][1]][puddles[i][0]] = 0;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
if(lists[i][j] == 0) continue;
if(i == 1 && j == 1) continue;
lists[i][j] = (lists[i][j - 1] + lists[i - 1][j]) % 1000000007; //여기서 계산을 해야됨
}
}
return lists[n][m];
}
풀이
- x - 1, y와 x , y - 1을 더하면 최종 개수가 나온다.
- 1, 1은 시작지점이므로 패스한다.
- 계산한 값을 1,000,000,007로 나눈 나머지를 값에 넣어야 효율성 테스트를 통과한다.
'Algorithm > Programmers' 카테고리의 다른 글
[C++] 프로그래머스 위클리챌린지 2주차 상호평가 (0) | 2021.09.17 |
---|---|
[C++] 프로그래머스 부족한 금액 계산하기 (0) | 2021.08.03 |
[C++] 프로그래머스 보석 쇼핑 2020카카오인턴십 [미완] (0) | 2021.05.10 |
[C++] 프로그래머스 오픈채팅방 2019카카오블라인드 (0) | 2021.05.10 |
[C++] 프로그래머스 가장먼노드 BFS (0) | 2021.05.09 |