백준 [ALGORITHM] - 2차원 배열의 합 (2167)

2024. 12. 5. 11:19코딩/백준 [ALGORITHM]

반응형
N, M = map(int, input().split())
address = []

for _ in range(N):
    temp_num = list(map(int, input().split()))
    address.append(temp_num)

prefix_sum = [[0] * (M + 1) for _ in range(N + 1)]

for i in range(1, N + 1):
    for j in range(1, M + 1):
        prefix_sum[i][j] = (
            address[i-1][j-1] +
            prefix_sum[i-1][j] +
            prefix_sum[i][j-1] -
            prefix_sum[i-1][j-1]
        )

K = int(input())
for _ in range(K):
    x1, y1, x2, y2 = map(int, input().split())
    result = (
        prefix_sum[x2][y2]
        - prefix_sum[x1-1][y2]
        - prefix_sum[x2][y1-1]
        + prefix_sum[x1-1][y1-1]
    )
    print(result)

 

입력한 값에 대한 구간합을 구함

반응형