https://www.acmicpc.net/problem/2563
[소스코드]
#include <iostream>
using namespace std;
// [baekjoon] 2563번 - 색종이
// 2023.01.04
int main() {
int arr[101][101] = { 0 };
int n, a, b;
int area = 0;
cin >> n;
for (int k = 0; k < n; k++) {
cin >> a >> b;
for (int i = a; i < a + 10; i++) {
for (int j = b; j < b + 10; j++) {
if (arr[i][j] == 0) {
arr[i][j] = 1;
area++;
}
}
}
}
cout << area;
return 0;
}
이차원 배열을 이용하면 쉽게 해결할 수 있는 문제다.
도화지를 1*1 크기의 정사각형 100*100개로 생각하면 이차원 배열로 만들 수 있다.
해당 영역에 색종이가 안붙어있으면 0, 붙어있으면 1로 생각하면 된다.
색종이의 위치를 입력 받고, 해당 위치에 색종이가 붙어있지 않으면 (=0) 색종이를 붙이고 (= 1로 바꾸기), 영역 크기를 1 더해주면 된다. 색종이가 붙어있는 경우는 그냥 넘어가도 된다 (겹치는 경우는 영역 계산에 추가로 더해지지 않으므로)
'학습 정리 > 👨💻 PS Study' 카테고리의 다른 글
[C++] 백준 1181번 - 단어 정렬 (0) | 2023.01.04 |
---|---|
[C++] 백준 25305번 - 커트라인 (0) | 2023.01.04 |
[C++] 백준 15552번 - 빠른 A+B (2) | 2023.01.04 |
[C] 백준 4884번 - FIFA 월드컵 (0) | 2022.07.09 |
[C] 백준 1018번 - 체스판 다시 칠하기 (0) | 2022.07.09 |