Skip to content

Commit f0078f4

Browse files
committed
[BOJ] 로봇 조종하기 / 골드 2 / 60분 힌트 사용
https://www.acmicpc.net/problem/2169
1 parent 8324e7b commit f0078f4

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import sys
2+
3+
input = sys.stdin.readline
4+
5+
N, M = map(int, input().split())
6+
arr = []
7+
for i in range(N):
8+
arr.append(list(map(int, input().split())))
9+
10+
# 첫번째 행의 최대가치는 왼쪽에서 오는 방향밖에 없음
11+
for i in range(1, M):
12+
arr[0][i] += arr[0][i - 1]
13+
14+
for i in range(1, N):
15+
# 위쪽, 왼쪽에서 오는 경로의 최대 가치 저장
16+
dp1 = arr[i][:]
17+
# 위쪽, 오른쪽에서 오는 경로의 최대 가치 저장
18+
dp2 = arr[i][:]
19+
for j in range(M):
20+
if j == 0:
21+
# 첫번째 행은 왼쪽에서 오는 경로가 없음
22+
dp1[j] += arr[i - 1][j]
23+
dp2[M - 1 - j] += arr[i - 1][M - 1 - j]
24+
else:
25+
# 위에서 오거나 왼쪽에서 오는 것 중 최대값
26+
dp1[j] += max(arr[i - 1][j], dp1[j - 1])
27+
# 위에서 오거나 오른쪽에서 오는 것 중 최대값
28+
dp2[M - 1 - j] += max(arr[i - 1][M - 1 - j], dp2[M - j])
29+
for j in range(M):
30+
arr[i][j] = max(dp1[j], dp2[j])
31+
print(arr[-1][-1])

0 commit comments

Comments
 (0)