알고리즘 문제풀기/인프런 강의 정답

50. 영지 (territory) 선택 (small : 2차원 배열 브루트포스) [정렬 & 이분탐색(결정알고리즘) & 투포인트 알고리즘 & 스택]

코다람쥐 2022. 4. 21. 10:53

나의정답.

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>

using namespace std;

int main(int argc, char** argv) {
	//freopen("input.txt", "rt", stdin);
	int row, col, H, W, sum, res = -1;
	scanf("%d %d", &row, &col);

	int** arr = new int* [row];
	for (int i = 0; i < row; i++)
		arr[i] = new int[col];

	for (int i = 0; i < row; i++) {
		for (int j = 0; j < col; j++) {
			scanf("%d", &arr[i][j]);
		}
	}

	scanf("%d %d", &H, &W);

	for (int i = 0; i <= row - H; i++) {
		for (int j = 0; j <= col - W; j++) {
			sum = 0;
			for (int n = i; n < H + i; n++) {
				for (int m = j; m < W + j; m++) {
					sum += arr[n][m];
				}
			}
			if (sum > res)
				res = sum;
		}
	}
	
	printf("%d", res);

	for (int i = 0; i < row; i++)
		delete[] arr[i];
	delete[] arr;
	
}