Algorithm
[알고리즘]SWEA_2001.파리퇴치
이수밈
2023. 8. 9. 23:32
import java.util.Arrays;
import java.util.Scanner;
public class Swea_파리퇴치 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int test_case = 1; test_case <= T; test_case++) {
int N = sc.nextInt();
int M = sc.nextInt();
int[][] flyarray = new int[N][N];
int[] sumarray = new int[(N - M + 1) * (N - M + 1)];
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
flyarray[i][j] = sc.nextInt();
}
}
int n=0;
for (int a = 0; a < N - M + 1; a++) {
for (int b = 0; b < N - M + 1; b++) {
int sum = 0;
for (int i = a; i < M + a; i++) {
for (int j = b; j < M + b; j++) {
sum = sum + flyarray[i][j];
}
}
sumarray[n++] = sum;
}
}
Arrays.sort(sumarray);
System.out.println("#" + test_case + " " + sumarray[sumarray.length - 1]);
}
}
}
포인트
- 굳이 max를 배열에 집어넣어서 추출하지 않아도 됐었다..
- N-M+1은 안에 M x M 배열이 N x N 배열안에서 이동하는 횟수를 나타낸다.
- sumarray[n++]가 개인적으로 내 코드의 포인트라고 생각됨.
- 중간에 for문을 하나 더 넣어주면 n은 움직이지만, 사실상 다른 변수들이 고정되어 있는 상태에서 n이 변하기 때문에 의미없는 값만 출력되었다. (동일한 값만 출력)
- 코드 봐준 제잌에게 심심한 감사의 말씀. 꾸벅
