문제
설명
파리채의 위치를 한번 옮길 때마다 죽은 파리의 수를 새롭게 계산했고, 그것을 max값과 비교하여 업데이트했습니다.
N, M값에 따른 전체 반복 횟수, x와 y의 좌표 계산이 중요한 문제입니다.
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class SWEA2001_CatchFlies {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int T = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for(int tc=1; tc<=T; tc++) {
st=new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[][] map = new int[N][N];
for(int i=0; i<N; i++) {
st = new StringTokenizer(br.readLine(), " ");
for(int j=0; j<N; j++) {
map[i][j]=Integer.parseInt(st.nextToken());
}
}
//입력 완료
int x=0, y=0;
int max=0;
//위쪽부터, -> 방향으로 진행하며 밑으로 한 칸씩 내려오는 방향으로 계산
for(int l=0; l<N-M+1; l++) {
y=0; //다시 초기화
for(int k=0; k<N-M+1; k++) {
int sum=0;
for(int i=x; i<M+x; i++) {// 한 차례 계산
for(int j=y; j<M+y; j++) {
sum+=map[i][j];
}
}
if (max<sum)
max=sum;
y++;
}
x++;
}
sb.append("#"+tc+" "+max).append("\n");
}
System.out.println(sb);
}
}
'알고리즘 문제풀이 > SWEA(SW Expert Academy)' 카테고리의 다른 글
[SWEA][JAVA]1218 - 괄호 짝짓기 (0) | 2021.08.21 |
---|---|
[SWEA][JAVA]2805 - 농작물 수확하기 (0) | 2021.08.19 |
[SWEA][JAVA]1289 - 원재의 메모리 복구하기 (0) | 2021.08.17 |
[SWEA][JAVA]5215 - 햄버거 다이어트 (0) | 2021.08.13 |
[SWEA][JAVA]1204 - 최빈수 구하기 (0) | 2021.08.10 |