반응형
문제
https://www.acmicpc.net/problem/2669
2669번: 직사각형 네개의 합집합의 면적 구하기
평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으
www.acmicpc.net
풀이
2차원 배열을 만들어 해당 구역이 직사각형 안이라면 1를 넣고 아니라면 0을 넣어주고 만약 앞 직사각형에서 이미 색칠되어있다면 건너뛰어 총 색칠된 면적의 개수를 구하면 쉽게 풀수있다.
소스코드
#include <stdio.h>
int main(void)
{
int arr[101][101] = {0, };
int x1, y1, x2, y2;
int result = 0;
for(int i = 0; i < 4; i++)
{
scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
// x1 부터 x2 만큼 반복문을 돌린다.
for(int j = x1; j < x2; j++)
{
// y1 부터 y2 만큼 반복문을 돌린다.
for(int z = y1; z < y2; z++)
{
// 해당 위치가 이미 색칠되어있다면 건너뛴다.
if(arr[j][z] == 1 ) continue;
// 만약 색칠되어있지않다면 넓이를 1 올려주고
// 해당 위치를 색칠해준다.
result++;
arr[j][z] = 1;
}
}
}
printf("%d", result);
return 0;
}
반응형
'프로그래밍 > 백준(BOJ)' 카테고리의 다른 글
[백준(BOJ) / C][Bronze Ⅰ] 10798번 : 세로읽기 (0) | 2024.01.28 |
---|---|
[백준(BOJ) / C][Silver Ⅳ] 10866번 : 덱 (0) | 2024.01.16 |
[백준(BOJ) / C][Silver Ⅴ] 17478번 : 재귀함수가 뭔가요? (1) | 2024.01.14 |
[백준(BOJ) / C][Silver Ⅳ] 10845번 : 큐 (0) | 2024.01.13 |
[백준(BOJ) / C][Silver Ⅴ] 1343번 : 폴리오미노 (0) | 2024.01.06 |