practivceAlgorithm/백준

[백준][Python] 1890 점프

findTheValue 2021. 10. 6. 21:46

도착하는 경우의 수를 check 한다. 각 지점마다 2개의 분기로 나누어 지는걸 고려 dp로 누적시킨다. 이동가능 거리가 0이면 정지하므로 연산하지 않는다.

 

import sys
input = sys.stdin.readline

N = int(input())
board = [list(map(int, input().split())) for _ in range(N)]
dp = [[0] * N for _ in range(N)]
dp[0][0] = 1

for row in range(N):
    for col in range(N):
        if not board[row][col]:
            continue
        jump = board[row][col]
        if col + jump < N:
            dp[row][col + jump] += dp[row][col]
        if row + jump < N:
            dp[row + jump][col] += dp[row][col]
print(dp[N - 1][N - 1])