반응형

https://www.acmicpc.net/problem/1749

 

1749번: 점수따먹기

동주는 항상 혼자 노느라 심심하다. 하지만 혼자 놀기의 고수가 된 동주는 매일매일 게임을 개발하여 혼자놀기의 진수를 우리에게 보여준다. 어느 날 동주는 새로운 게임을 개발하였다. 바로 점

www.acmicpc.net

 

arr[i][j] = 왼쪽 위 좌표가 (1, 1), 오른쪽 아래 좌표가 (i, j)인 직사각형의 넓이를 저장해줍니다.

만들어질 수 있는 모든 직사각형을 검사하면서, 그 넓이의 최댓값을 찾아줍니다.

 
 
#include <cstdio>

int n, m, arr[201][201] = { 0 }, ans = -10000;

int main() {
    scanf("%d %d", &n, &m);
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            scanf("%d", &arr[i][j]);
            arr[i][j] += arr[i - 1][j] + arr[i][j - 1] - arr[i - 1][j - 1];
        }
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            for (int k = i; k <= n; k++) {
                for (int l = j; l <= m; l++) {
                    int sum = arr[k][l] - arr[i-1][l] - arr[k][j-1] + arr[i - 1][j - 1];
                    if (ans < sum) ans = sum;
                }
            }
        }
    }
    printf("%d", ans);
}
반응형

'Algorithm' 카테고리의 다른 글

백준 14497 : 주난의 난(難)  (0) 2021.11.17
백준 20208 : 진우의 민트초코우유  (0) 2021.11.17
백준 2170 : 선 긋기  (0) 2021.11.17
백준 6198 : 옥상 정원 꾸미기  (0) 2021.11.17
백준 17940 : 지하철  (0) 2021.11.17

+ Recent posts