[문제]
N x N 배열 안의 숫자는 해당 영역에 존재하는 파리의 개수를 의미한다.
M x M 크기의 파리채를 한 번 내리쳐 최대한 많은 파리를 죽이고자 한다.
죽은 파리의 개수를 구하라!
[풀이방법]
M*M크기의 파리채 만큼의 칸에 적힌 최대값을 구하는 문제입니다.
가장 직관적으로 접근하는 방법은 현재 있는 칸을 기준으로 M만큼 순차적으로 증가시킨 칸에 적힌 수를 더하는 것입니다.
더한 결과 중 최대값을 구하면 죽은 파리의 최대 개수를 구할 수 있습니다.
for (int i = 0; i <= N-M ; i++) {
for (int j = 0; j <= N-M; j++)
max = Math.max(max, getResult(i, j));
}
static int getResult(int x, int y) {
int res = 0;
for (int i = x; i < x + M; i++) {
for (int j = y; j < y + M; j++)
res += map[i][j];
}
return res;
}
'SWEA > D2' 카테고리의 다른 글
[SWEA 1986][D2][JAVA] 지그재그 숫자 (0) | 2019.04.30 |
---|---|
[SWEA 1989][D2][JAVA] 초심자의 회문검사 (0) | 2019.04.30 |
[SWEA 2005][D2][JAVA] 파스칼의 삼각형 (0) | 2019.04.29 |
[SWEA 2007][D2][JAVA] 패턴 마디의 길이 (0) | 2019.04.29 |
[SWEA][D2][JAVA] 간단한 369게임 (0) | 2019.04.29 |