For Programmer

백준 11660번 파이썬 문제풀이(구간 합 구하기 5) 본문

코팅테스트/백준 문제 모음

백준 11660번 파이썬 문제풀이(구간 합 구하기 5)

유지광이 2022. 3. 27. 00:33
728x90


import sys

input = sys.stdin.readline

N, M = map(int, input().split())

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

# 2차원 누적합 구하기
prefix = ([[0] * (N + 1)]) + [[0] * (N + 1) for _ in range(N)]

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

for _ in range(M):
    x1, y1, x2, y2 = map(int, input().split())

    print(prefix[x2][y2] - prefix[x1 - 1][y2] - prefix[x2][y1 - 1] + prefix[x1 - 1][y1 - 1])

 

728x90
Comments