※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 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 |