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

 

2669번: 직사각형 네개의 합집합의 면적 구하기

평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으

www.acmicpc.net

 

 

[난이도] Bronze1
[유형] 구현

[풀이]
100x100 board 배열을 선언한 뒤, 각 4개의 사각형을 체크하면서
차지하는 영역에 체크를 해준 뒤 체크된 영역을 더해주면 됩니다.

 

#include <cstdio>
int a,b,c,d,board[101][101],ans;
int main(){
    for(int i=0;i<4;i++){
        scanf("%d%d%d%d",&a,&b,&c,&d);
        for(int i=a;i<c;i++)
            for(int j=b;j<d;j++) board[i][j]=1;
    }
    for(int i=0;i<=100;i++)
        for(int j=1;j<=100;j++) ans+=board[i][j];
    printf("%d",ans);
}


https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Bronze1/2669.cpp

+ Recent posts