알고리즘/프로그래머스
Programers 등굣길
내이름은 킹햄찌
2022. 3. 12. 22:00
https://programmers.co.kr/learn/courses/30/lessons/42898
코딩테스트 연습 - 등굣길
계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m =
programmers.co.kr
프로그래머스 등굣길 문제입니다.
#include <string>
#include <vector>
using namespace std;
int solution(int m, int n, vector<vector<int>> puddles) {
vector<vector<int>> arr(n+1,vector<int>(m+1,1));
for(auto iter : puddles){
int y = iter[1];
int x = iter[0];
arr[y][x] = 0;
if(y == 1){
for(int i = x; i<=m;i++){
arr[1][i] = 0;
}
}
if(x == 1){
for(int i = y; i<=n; i++){
arr[i][1] = 0;
}
}
}
for(int y = 2; y<=n; y++){
for(int x = 2; x<=m; x++){
if(arr[y][x] == 0) continue;
arr[y][x] = (arr[y-1][x] + arr[y][x-1])%1000000007;
}
}
int answer = arr[n][m];
return answer;
}
아이디어
현재 위치로부터 우측 대각선 하단으로 가는 방법의 수를 구하는 점화식을 세우면 됨
물론 우물이 있는 곳에 대한 처리는 필수