728x90
2167번: 2차원 배열의 합 (acmicpc.net)
난이도 : 브론즈1
비교적 쉬운 문제였습니다. 문제 이해만 잘 한다면?
문제 이해가 안가시는 분들을 위해 설명을 해드리자면
2, 3 = 행이 2이고, 열이 3인 배열OR벡터를 생성
밑에 두줄은 배열에 들어가는 수를 뜻하구요 (0,0)=1, (0,1) =2 ... (편의를 위해 배열의 시작을 0,0으로 가정)
3 밑에 세줄이 이해 안가실 거같은데
위와같은 방식으로 더해가는 거랍니다
문제 이해만 하면 쉽게 코드는 짤 수 있습니당
답 :
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int n, m;
scanf("%d %d", &n, &m);
vector<vector<int>> arr(n, vector<int>(m, 0));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &arr[i][j]);
}
}
int k,sum=0;
scanf("%d", &k);
for (int l = 0; l < k; l++) {
int i, j, x, y;
scanf("%d %d %d %d", &i, &j, &x, &y);
for (int a = i - 1; a < x; a++) {
for (int b = j - 1; b < y; b++) {
sum += arr[a][b];
}
}
printf("%d\n", sum);
sum = 0;
}
}
728x90
'Algorithm > Solution' 카테고리의 다른 글
[C++] 17478번 재귀함수가 뭔가요? (0) | 2021.01.18 |
---|---|
[C++] 2960번 에라토스테네스의 체 (0) | 2021.01.17 |
[C++] 11944번 NN (0) | 2021.01.10 |
[C++] 2609번 최대공약수와 최소공배수 (0) | 2021.01.10 |
[C++] 1100번 하얀 칸 (0) | 2021.01.10 |