[백준] 1890번 점프

거북이·2023년 9월 21일
0

백준[실버1]

목록 보기
57/67
post-thumbnail

💡문제접근

  • 오른쪽과 아래쪽으로만 이동이 가능하고 중간에 방향을 바꿀 수 없다고 했으므로 지도 내에서 오른쪽으로 이동이 가능한 경우, 아래쪽으로 이동이 가능한 경우를 따져서 오른쪽 맨 아래로 이동할 수 있는 경우를 카운팅한다.
  • IndexError에 시달렸던 문제

💡코드(메모리 : 31256KB, 시간 : 44ms)

import sys
input = sys.stdin.readline

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

for i in range(N):
    for j in range(N):
        if i == N-1 and j == N-1:
            print(dp[i][j])
            break

        # 아래쪽으로 이동하는 방향의 경우
        if i + graph[i][j] < N:
            dp[i + graph[i][j]][j] += dp[i][j]

        # 오른쪽으로 이동하는 방향의 경우
        if j + graph[i][j] < N:
            dp[i][j + graph[i][j]] += dp[i][j]

💡소요시간 : 34m

0개의 댓글