알고리즘/구현
백준 2167번 : 2차원 배열의 합
Jason95
2021. 1. 2. 22:49
문제 링크 : www.acmicpc.net/problem/2167
내 풀이(2021.1.2.) :
#include <iostream>
using namespace std;
int arr[300][300] = { 0 }; // [x][y]
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int N, M; cin >> N >> M;
for (int j = 0; j < N; j++) { // x축
for (int i = 0; i < M; i++) { // y축
int temp; cin >> temp;
arr[i][j] = temp;
}
}
int K; cin >> K;
for (int k = 0; k < K; k++) {
int sum = 0;
int i, j, x, y; cin >> i >> j >> x >> y;
for (int b = j - 1; b <= y - 1; b++) { // x축
for (int a = i - 1; a <= x - 1; a++) { // y축
sum += arr[b][a];
}
}
cout << sum << endl;
}
return 0;
}
1) 2차원 배열 문제에서 x, y축을 정확히 정의하는 것이 중요하다
2) int의 범위 = -231 ~ 231-1
unsigned int의 범위 = 0 ~ 232-1
long의 범위 = -231 ~ 231-1
long long의 범위 = -263 ~ 263-1