c c++ 언어 공부
백준 1531번 : 투명 (C 언어)
Code C
2023. 9. 21. 12:24
https://www.acmicpc.net/problem/1531
1531번: 투명
첫째 줄에 N과 M이 주어진다. N은 0보다 크거나 같고, 50보다 작거나 같다. M은 0보다 크거나 같고, 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 종이의 좌표가 주어진다. 왼쪽 아래 모서리의 x, y좌
www.acmicpc.net
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include <stdio.h>
#include <string.h>
int main()
{
int arr[101][101] = { 0, };
int x1, y1, x2, y2;
int n, m;
int count = 0;
scanf("%d %d", &n, &m);
while (n--)
{
scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
for (int i = y1; i <= y2; i++)
{
for (int j = x1; j <= x2; j++)
{
arr[i][j]++;
}
}
}
for (int i = 1; i <= 100; i++)
{
for (int j = 1; j <= 100; j++)
{
if (arr[i][j] > m)
{
count++;
}
continue;
}
}
printf("%d", count);
}
|
cs |
문제 설명:
세준이는 1×1 크기의 그림으로 모자이크한 100×100 크기의 그림이 있습니다. 세준이는 이 그림 중 일부를 불투명한 종이로 가리려고 합니다. 그러나 일정 수 이하의 종이가 올려져 있으면 그 부분의 그림은 보일 수 있습니다. 주어진 불투명한 종이의 위치와 크기를 바탕으로 보이지 않는 그림의 개수를 세어야 합니다.
코드 설명:
- n개의 종이에 대해 각 종이가 덮인 부분을 배열 arr에 표시합니다.
- 각 좌표별로 덮인 횟수를 확인하여 보이지 않는 그림의 개수를 계산합니다.
- 계산된 보이지 않는 그림의 개수를 출력합니다.