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])