문제 이동하기 풀이 핵심 dp[i][j] => i,j에서 먹을 수 있는 최대 값 dp[i][j] = max(dp[i][j-1], dp[i-1][j-1], dp[i-1][j]) + arr[i][j] 구체적인 풀이 n,m 받기 arr로 int전환해서 map받기 for i in n for j in m dp ~ print(dp[n - 1][m - 1]) 코드 1 2 3 4 5 6 7 8 9 10 11 12 n,m = list(map(int, input().split())) arr = [] for _ in range(n): arr.append(list(map(int, input().split()))) dp = [[0] * (m + 1) for _ in range(n + 1)] for i in range(1, n+ 1): for j in range(1, m+1): dp[i][j] = max(dp[i][j-1], dp[i-1][j-1], dp[i-1][j]) + arr[i-1][j-1] print(dp[n][m])