20002번: 사과나무
N × N 크기의 정사각형 모양 과수원이 있고, N × N 개의 사과나무가 1 × 1 크기의 간격으로 모든 칸에 심어져있다. 농부 형곤이가 가을을 맞아 사과를 수확하려는데, 땅주인 신영이가 "너는 과수원
www.acmicpc.net
코드
n = int(input())
profits = [list(map(int, input().split())) for _ in range(n)]
accum = [[0]*(n+1) for _ in range(n+1)] # 누적합
for i in range(1, n+1):
for j in range(1, n+1):
accum[i][j] = accum[i-1][j]+accum[i][j-1] - \
accum[i-1][j-1]+profits[i-1][j-1]
ans = -int(1e9)
for i in range(1, n+1): # 행
for j in range(1, n+1): # 열
for k in range(1, min(i, j)+1): # K x K 정사각형 한 변 길이 K
p = accum[i][j]-accum[i-k][j]-accum[i][j-k]+accum[i-k][j-k]
if p > ans:
ans = p
print(ans)
'문제풀이 > 누적합' 카테고리의 다른 글
[Python/파이썬] 백준 2876번 그래픽스 퀴즈 (0) | 2024.04.30 |
---|---|
[Python/파이썬] 백준 10211번 Maximum Subarray (0) | 2024.03.01 |
[Python/파이썬] 백준 2900번 프로그램 (0) | 2024.01.18 |
[Python/파이썬] 백준 3673번 나눌 수 있는 부분 수열 (0) | 2024.01.17 |
[Python/파이썬] 백준 20159번 동작 그만. 밑장 빼기냐? (0) | 2024.01.10 |