본문 바로가기

SWEA/D2

[SWEA 2001][D2][JAVA] 파리퇴치

[문제]

 

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;

 

}