N이 작아서 문제대로 생각하면 풀림
N이 최대 15니까 arr[15][15]로 선언
처음에는 규칙 찾으려고 생각했는데, brute force가 가장 효율적일 때가 은근 많음🙉
#include <iostream>
#include <string>
using namespace std;
int main() {
int test_case;
int T;
cin >> T;
for (test_case = 1; test_case <= T; ++test_case) {
int N, M;
int arr[15][15] = {0};
cin >> N >> M;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
int n;
cin >> n;
arr[i][j] = n;
}
}
int ans = 0;
int num = N - M + 1;
for (int I = 0; I < num; I++) {
for (int J = 0; J < num; J++) {
//숫자 합
int sum = 0;
for (int i = I; i < I+M; i++) {
for (int j = J; j < J+M; j++) {
sum += arr[i][j];
}
}
if (ans < sum)
ans = sum;
}
}
cout << "#" << test_case << " " << ans << endl;
}
return 0;
}