💡 Info
- 난이도: D2
- 시간 제한: 10개의 테스트 케이스를 합쳐서 30초
- 메모리 제한: 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내
SWEA 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PzOCKAigDFAUq&categoryId=AV5PzOCKAigDFAUq&categoryType=CODE&problemTitle=2001&orderBy=FIRST_REG_DATETIME&selectCodeLang=JAVA&select-1=&pageSize=10&pageIndex=1
풀이 링크(GitHub): hayannn/CodingTest_Java/SWEA/D2/2001. 파리퇴치
10
5 2
1 3 3 6 7
8 13 9 12 8
4 16 11 12 6
2 4 1 23 2
9 13 4 7 3
6 3
29 21 26 9 5 8
21 19 8 0 21 19
9 24 2 11 4 24
19 29 1 0 21 19
10 29 6 18 4 3
29 11 15 3 3 29
...
#1 49
#2 159
...
실제 풀이 시간 : 30분
import java.util.*;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T;
T=sc.nextInt();
for(int test_case = 1; test_case <= T; test_case++)
{
int n = sc.nextInt();
int m = sc.nextInt();
int [][] arr = new int[n][n];
for(int i=0; i <n; i++) {
for(int j=0; j<n; j++) {
arr[i][j] = sc.nextInt();
}
}
int max = 0;
for(int i=0; i <n-m+1; i++) {
for(int j=0; j<n-m+1; j++) {
int sum = 0;
for(int k=0; k<m; k++) {
for(int p=0; p<m; p++) {
sum += arr[i+k][j+p];
}
}
if(max<sum)
max = sum;
}
}
System.out.println("#" + test_case + " " + max);
}
}
}