File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed
Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change 1+ # 테스트 케이스(Test Case) 입력
2+ for tc in range (int (input ())):
3+ # 금광 정보 입력
4+ n , m = map (int , input ().split ())
5+ data = list (map (int , input ().split ()))
6+
7+ # 다이나믹 프로그래밍을 위한 이차원 테이블 초기화
8+ dp = []
9+ index = 0
10+ for i in range (n ):
11+ dp .append (data [index :index + m ])
12+ index += m
13+
14+ # 다이나믹 프로그래밍 진행
15+ for j in range (1 , m ):
16+ for i in range (n ):
17+ # 왼쪽 위에서 오는 경우
18+ if i = = 0 :
19+ left_up = 0
20+ else :
21+ left_up = dp [i - 1 ][j - 1 ]
22+ # 왼쪽 아래에서 오는 경우
23+ if i = = n - 1 :
24+ left_down = 0
25+ else :
26+ left_down = dp [i + 1 ][j - 1 ]
27+ # 왼쪽에서 오는 경우
28+ left = dp [i ][j - 1 ]
29+ dp [i ][j ] = dp [i ][j ] + max (left_up , left_down , left )
30+
31+ result = 0
32+ for i in range (n ):
33+ result = max (result , dp [i ][m - 1 ])
34+
35+ print (result )
You can’t perform that action at this time.
0 commit comments