[백준/BOJ] 백준 11660번 : 구간 합 구하기 5
2022. 8. 17. 02:48ㆍ알고리즘 문제풀이
https://www.acmicpc.net/problem/11660
2차원 누적합을 이용해서 문제를 해결했다.
코드
#include <iostream>
#include <vector>
using namespace std;
int n, m;
int board[1030][1030];
int psum[1030][1030];
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
int input;
cin >> input;
board[i][j] = input;
}
}
//2차원 누적합 구하기
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
psum[i][j] = psum[i][j - 1] + psum[i - 1][j] - psum[i - 1][j - 1] + board[i][j];
}
}
for (int i = 0; i < m; i++)
{
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
cout << psum[x2][y2] - psum[x2][y1 - 1] - psum[x1 - 1][y2] + psum[x1 - 1][y1 - 1] << "\n";
}
return 0;
}
'알고리즘 문제풀이' 카테고리의 다른 글
[백준/BOJ] 백준 1655번 : 가운데를 말해요 (0) | 2022.08.17 |
---|---|
[백준/BOJ] 백준 19942번 : 다이어트 (0) | 2022.08.17 |
[백준/BOJ] 백준 16946번 : 벽 부수고 이동하기 4 (0) | 2022.08.17 |
[백준/BOJ] 백준 23290번 : 마법사 상어와 복제 (0) | 2022.08.17 |
[백준/BOJ] 백준 2336번 : 굉장한 학생 (0) | 2022.08.15 |