코딩테스트/백준

[백준] 2563번 색종이 (C++)

Deff_a 2024. 8. 26. 15:23

문제

 

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


풀이

단순 구현 문제로 100 * 100 맵에 색종이를 덮은 부분(1)의 갯수를 구하면 되는 문제이다.

 

처음 이 문제를 접근했을 때, 겹친 부분의 넓이을 구해 전체 넓이에 뺄려고 했지만, 예외 상황이 너무 많아 위 방법을 사용했다.

ex) 색종이가 여러개 겹쳤을 때

 

#include<iostream>

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

using namespace std;

int main() {
	int n, x, y, count = 0;
	int arr[101][101] = {0,};

	cin >> n;

	for (int i = 0; i < n; i++) {
		cin >> x >> y;

		for (int i = x; i < 10 + x; i++) {
			for (int j = y; j < 10 + y; j++) {
				if (arr[i][j] == 0) {
					arr[i][j] = 1;
					count++;
				}
			}
		}
	}

	cout <<  count << endl;
	return 0;
}