2001 파리퇴치 (D2)
문제 이해
NxN의 배열 안에 숫자가 있는데 MxM의 파리채를 한번 내리쳐서 최대한 많은 파리를 죽이고자 한다.
죽은 파리의 개수를 구하자.
- NXN 크기의 배열에 값을 담아.
- MxM 크기의 파리채라고 가정. 하나씩 다 완전탐색
- 그 중 가장 값의 크기가 큰 걸 출력!
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution {
public static void main(String args[]) throws Exception{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(bf.readLine());
// 값 담기
int i,j,k,l;
int t = 1;
while(T-- >0 ) {
StringTokenizer st = new StringTokenizer(bf.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int [][]map = new int[N][N];
// 입력 받기
for(i = 0; i < N; i++) {
StringTokenizer rowLine = new StringTokenizer(bf.readLine());
for(j = 0 ; j < N; j++) {
map[i][j] = Integer.parseInt(rowLine.nextToken());
}
}
// 계산 하기
int result = 0;
for(i = 0 ; i <N-M+1; i++) {
for (j = 0 ; j < N-M+1; j++) {
int total = 0;
for(k=0; k<M; k++) {
for(l=0; l<M; l++) {
total += map[i+k][j+l];
}
}
if(total > result)
result = total;
}
}
System.out.println("#"+t+" " + result);
t++;
}
};
}
참고자료
SWE selfStudyBook(3)