코딩 테스트 준비
점프 – 실버 1
개발쉐발
2023. 1. 7. 14:58
728x90
반응형
import sys
input = sys.stdin.readline
n = int(input())
maps = [list(map(int, input().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 j + maps[i][j] < n:
dp[i][j + maps[i][j]] += dp[i][j]
# 아래로 이동
if i + maps[i][j] < n:
dp[i + maps[i][j]][j] += dp[i][j]
일단 dp로 초기화하는 걸 생각 좀 해보자.
아무 생각없이 bfs로 풀어서 메모리 초과가 떴다.
dp 문제는 맵을 하나 더 준비해서 풀어보는 시도를 해보는 게 좋을 거 같다.
728x90
반응형