※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 14732번 문제인 행사장 대여 (Small)이다.
문제는 아래 링크를 확인하자.

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

 

14732번: 행사장 대여 (Small)

상현이는 국방부 퀘스트를 수행하기 전에 이별 파티를 기획하고 있다. 따라서 파티를 진행하기 위해 행사장을 대여하려고 한다. 이 대여 업체는 전직 프로그래머들만 일하기 때문에 대여 방식

www.acmicpc.net

직사각형이 여럿 주어졌을 때, 직사각형이 덮고 있는 전체 면적을 구하는 문제이다.

 

직사각형이 덮을 수 있는 전체 영역을 배열로 먼저 나타내자. 각 배열의 칸에는 0이 들어있다.

 

이제 각 직사각형의 내부에 해당하는 칸을 반복문을 돌며 전부 1로 채우자.

 

모든 직사각형에 대해 각 내부에 있는 칸 모두를 1로 표시했다면 이제 1의 개수가 전체 직사각형이 덮은 넓이와 같게 된다. 전체 영역을 반복문을 돌면서 순회해 1의 개수를 세는 것으로 문제를 해결하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

int arr[500][500];

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int N; cin >> N;
	while (N--) {
		int x1, y1, x2, y2; cin >> x1 >> y1 >> x2 >> y2;
		for (int r = x1; r < x2; r++) {
			for (int c = y1; c < y2; c++) arr[r][c] = 1;
		}
	}

	int ans = 0;
	for (int r = 0; r < 500; r++) {
		for (int c = 0; c < 500; c++) ans += arr[r][c];
	}

	cout << ans;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 14730 // C++] 謎紛芥索紀 (Small)  (0) 2022.06.19
[BOJ 5590 // C++] 船旅  (0) 2022.06.19
[BOJ 5589 // C++] おせんべい  (0) 2022.06.19
[BOJ 24073 // C++] ビ太郎と IOI (Bitaro and IOI)  (0) 2022.06.18
[BOJ 5556 // C++] 타일  (0) 2022.06.17

+ Recent posts