행렬의 행과 열에 따라 for문의 시작과 끝을 조정하고
수들을 더해준다.
for문의 시작과 끝이 중요하다.
for문의 행 시작i, 끝x
for문의 열 시작j, 끝y
배열의 합이 int MAX값보다 작으므로 int로 풀이 진행
주의할 점은 문제에서 1인덱스를 사용하기 때문에 그에 맞게 인덱스를 조정해줘야한다.
똑같이 1인덱스를 사용하거나 0인덱스를 사용하고 범위를 조정할 수 있다.
//백준 2167, 2차원 배열의 합
#include <iostream>
int main(){
int N, M;
std::cin >> N >> M;
int grid[305][305] = {0};
for(int i{1}; i<=N; ++i){
for(int j{1}; j<=M; ++j){
std::cin >> grid[i][j];
}
}
int T; std::cin >> T;
while(T--){
int i, j, x, y;
int ans{0};
std::cin >> i >> j >> x >> y;
for(int col{i}; col<=x; ++col){
for(int row{j}; row<=y; ++row){
ans += grid[col][row];
}
}
std::cout << ans << '\n';
}
return 0;
}