practivceAlgorithm/백준

[백준][Python] 20002 사과나무

findTheValue 2021. 7. 31. 19:29

dp.. 그놈의 정사각형

import sys
input = sys.stdin.readline

N = int(input())
maps = [list(map(int,input().split())) for _ in range(N)]
dp = [[0]*(N+1) for _ in range(N+1)]

for i in range(1,N+1):
    for j in range(1,N+1):
        dp[i][j] = dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+maps[i-1][j-1]

max_profit=dp[1][1]
for k in range(N):
    for i in range(1,N-k+1):
        for j in range(1,N-k+1):
            cur_profit = dp[i+k][j+k]-dp[i-1][j+k]-dp[i+k][j-1]+dp[i-1][j-1]
            if max_profit < cur_profit:
                max_profit=cur_profit

print(max_profit)