🔻PS/Baekjoon
[Baekjoon] 백준 11048 이동하기 Python
_니지
2024. 10. 1. 20:30
https://www.acmicpc.net/problem/11048
❗풀이방법
- 1행과 1열은 누적합 계산
- (1, 1)에서부터 DP 계산
- max(graph[i-1][j], graph[i][j-1], graph[i-1][j-1]) 계산 후 (i, j)에 합하기
❗코드
import sys
input = sys.stdin.readline
n, m = map(int, input().split(" "))
graph = []
for _ in range(n):
temp = list(map(int, input().split(" ")))
graph.append(temp)
for i in range(1, n):
graph[i][0] += graph[i-1][0]
for i in range(1, m):
graph[0][i] += graph[0][i-1]
for i in range(1, n):
for j in range(1, m):
graph[i][j] += max(graph[i-1][j], graph[i][j-1], graph[i-1][j-1])
print(graph[n-1][m-1])
728x90
반응형