자르비 왕국
[SW Academy] 2001 파리퇴치 - JAVA 본문
1. 문제 유형 : 부르트 포스
2. 시간 복잡도 : O((N-M)^2*M^2)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution {
static int N;
static int M;
static int answer;
static int[][] map;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(in.readLine());
for (int i = 1; i <= T; i++) {
String s = in.readLine();
N = Integer.parseInt(s.split(" ")[0]);
M = Integer.parseInt(s.split(" ")[1]);
answer = 0;
map = new int[N][N];
for (int j = 0; j < N; j++) {
StringTokenizer st = new StringTokenizer(in.readLine());
for (int j2 = 0; j2 < N; j2++) {
map[j][j2] = Integer.parseInt(st.nextToken());
}
}
for (int j = 0; j <= N - M; j++) {
for (int j2 = 0; j2 <= N - M; j2++) {
solution(j, j2);
}
}
sb.append("#").append(i).append(" ").append(answer).append('\n');
}
System.out.println(sb.toString());
}
public static void solution(int row, int col) {
int sum = 0;
for (int i = 0; i < M; i++) {
for (int j = 0; j < M; j++) {
if (row + i >= N || col + j >= N) return;
sum += map[row + i][col + j];
}
}
answer = Math.max(answer, sum);
}
}
'문제풀이' 카테고리의 다른 글
[백준] 2605 줄 세우기 - JAVA (0) | 2022.02.09 |
---|---|
[SW Academy] 9229 한빈이와 Spot Mart - JAVA (0) | 2022.02.08 |
[SW Academy] 1954 달팽이 숫자 - JAVA (0) | 2022.02.04 |
[SW Academy] 1873 상호의 배틀필드 - JAVA (0) | 2022.02.04 |
[백준] 1062 가르침 - JAVA (0) | 2022.02.02 |