for문이 무려 4번이나 중첩된다.
첫번째 2중 for문은 파리채 좌측상단의 좌표고 두번째 2중 for문은 파리채의 크기만큼 돌리기 때문에 4중 for문이다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
public class Algorithm {
public static int[][] matrix = null;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(br.readLine());
for(int t=1;t<=a;t++){
String[] arr = br.readLine().split(" ");
int n = Integer.parseInt(arr[0]);
int m = Integer.parseInt(arr[1]);
matrix = new int[n][n];
for(int i=0;i<n;i++){
arr = br.readLine().split(" ");
for(int j=0;j<arr.length;j++){
matrix[i][j] = Integer.parseInt(arr[j]);
}
}
int result = 0;
for(int i=0;i<=matrix.length-m;i++){
for(int j=0;j<=matrix.length-m;j++){
int sum = 0;
// System.out.println("start : " + "i = " + i + " j = " + j);
for(int k=i;k<i+m;k++){
for(int l=j;l<j+m;l++){
// System.out.println("k = " + k + " l = " + l);
sum+=matrix[k][l];
}
}
result = Math.max(result, sum);
// System.out.println("--------------------------");
}
}
System.out.println(result);
}
}
}