프로그래머스 - 등굣길

J-Keonho·2020년 9월 14일
0
post-custom-banner

해당 알고리즘 자료는 제가 직접 푼 것도 있지만 다른 분들의 풀이과의 비교를 통해 더 나은 알고리즘을 공부하기 위해 정리한 것들입니다.

프로그래머스 - 등굣길

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

풀이 : DP를 이용한 알고리즘

class Solution {
    public int solution(int m, int n, int[][] puddles) {
        int [][] dp = new int [n+1][m+1];
	for(int [] i : puddles) dp[i[1]][i[0]] = -1;
	dp[1][1] = 1;
	for (int i = 1; i <= m; i++) {
		for (int j = 1; j <= n; j++) {
			if(dp[j][i] == -1) {
				dp[j][i] = 0;
				continue;
			}
			if(i != 1) dp[j][i] += dp[j][i-1] % 1000000007;
			if(j != 1) dp[j][i] += dp[j-1][i] % 1000000007;
		}
	}
        return dp[n][m] % 1000000007;
    }
}
profile
안녕하세요.
post-custom-banner

0개의 댓글