본문 바로가기
programming/알고리즘 풀이

백준(Baekjoon)_2167번 문제풀이

by 몽구스_ 2020. 1. 28.
728x90

 

 

#include <stdio.h>
int main(void)
{
    int n, m;
    int i, j, k;
    int a, b, x, y;
    int num, total = 0;
    int arr[300][300] = {0}; //배열 넉넉하게 설정하여 런타임에러방지

    scanf("%d %d", &n, &m);
    for (i = 0; i < n; i++){
        for (j = 0; j < m; j++)
            scanf("%d", &arr[i][j]);
    }
    scanf("%d", &num);
    for (k = 0; k < num; k++){
        scanf("%d %d %d %d", &a, &b, &x, &y);
        for (i = a - 1; i <= x - 1; i++){ //배열은 (0,0)부터 시작하지만 문제에선 (1,1)부터 시작하므로 1씩 빼줌
            for (j = b - 1; j <= y - 1; j++)
                total += arr[i][j]; //각각배열에 있던거 더해주기
        }
        printf("%d\n", total);
        total = 0; //다음 합계를 위해 초기화
    }
}

 

생각보다 쉬운 문제인데 문제를 처음에 못이해해서 조금 시간이 걸렸다.

일단 백준에서 제시하는 조건에 부합하게끔 배열을 잡아줘야 런타임에러가 안걸린다.

그점을 주의하고 나머지를 조금씩 수정하여 풀었다.

total을 초기화안하는 둥 기초적인 실수를 많이 함.

 

 

/0127

 

댓글