C++/백준 C++

C++ 2167 2차원 배열의 합 [구현, 누적합]

CE : 하랑 2024. 11. 7. 12:49

 

 

 

 

-> std::vector<std::vector<int>> -> 2차원 배열 표현

-> i에서 x 까지, j에서 y 까지 범위로 잡고 합 계산

 

#include <iostream>
#include <vector>

int main()
{
	std::vector<std::vector<int>> boards;

	int N, M;

	std::cin >> N >> M;

	boards.resize(N);

	for (int i = 0; i < N; i++)
	{
		boards[i].resize(M);

		for (int j = 0; j < M; j++)
		{
			std::cin >> boards[i][j];
		}
	}

	int k;

	std::cin >> k;

	for (int n = 0; n < k; n++)
	{
		int i, j, x, y;

		std::cin >> i >> j >> x >> y;

		int sum = 0;
		for (int X = i-1; X <x ; X++)
		{
			for (int Y = j-1; Y < y; Y++)
			{
				sum += boards[X][Y];
			}
		}

		std::cout << sum << "\n";
	}

	return 0;
}