- 문제
- 풀이
#include <iostream>
using namespace std;
int main()
{
int arr[101][101] = { 0 };
int n = 0;
int count = 0;
cin >> n;
for (int i = 0; i < n; i++)
{
int startX = 0, startY = 0;
cin >> startX >> startY;
for (int y = startY; y < startY + 10; y++)
{
for (int x = startX; x < startX + 10; x++)
{
if (arr[y][x] == 0)
{
count++;
arr[y][x] = 1;
}
}
}
}
cout << count;
return 0;
}
- 메모
가로, 세로의 크기가 각각 100이라고 했으므로 y가 101, x가 101인 2차원 배열을 사용했다.
색종이의 넓이를 체크하기 위해서 색종이가 있는 부분은 1, 없는 부분은 0으로 가정하고 카운팅해주었다.
카운팅은 색종이의 가로 세로 길이는 각각 10이므로 입력받은 x의 시작값, y의 시작값에서 10씩 더해준 값까지 순회하며 체크하는 방식을 사용했다.
현재 체크하려는 배열에 색종이가 없는 경우(값이 0) 해당하는 값을 1로 바꿔주면서 동시에 카운팅을 +1 해주면 된다.
'코딩테스트' 카테고리의 다른 글
☆ [백준/1193번/C++] 분수찾기 (0) | 2024.08.01 |
---|---|
☆ [백준/11005번/C++] 진법 변환 2 (0) | 2024.07.31 |
[백준/10798번/C++] 세로읽기 (0) | 2024.07.27 |
[백준/2941번/C++] 크로아티아 알파벳 (0) | 2024.07.26 |
[백준/10811번/C++] 바구니 뒤집기 (0) | 2024.07.25 |