728x90
https://www.acmicpc.net/problem/2563
2563번: 색종이
첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변
www.acmicpc.net

색종이가 붙은 영역의 넓이를 구하는 문제이다.
처음에는 겹친 영역의 넓이를 구하는 방법을 고민했었으나 색종이의 수가 많아질수록 겹친 영역을 일일이 구하는 것은 불가능하다고 판단을 했다.
이 문제는 단순히 이차원 배열을 생성하면 된다.
100x100 행렬에서 각각의 좌표를 넓이가 1인 정사각형으로 보는 것이다.
예를 들어 (0, 0)의 경우

(2, 1)의 경우

이제 값이 모두 1인 101x101 행렬을 생성하고 입력받은 좌표에 따라 100개의 좌표에 0을 넣어주면 된다.
그리고 0의 개수를 모두 세면 넓이가 나온다.
import sys
matrix=[[1 for _ in range(101)] for _ in range(101)]
n=int(input())
for _ in range(n):
a, b = map(int , sys.stdin.readline().split())
for i in range(a,a+10):
for j in range(b,b+10):
matrix[i][j]=0
res=0
for i in range(101):
res+=matrix[i].count(0)
print(res)
728x90
'백준 알고리즘' 카테고리의 다른 글
[백준 2231][파이썬] 분해 합 (0) | 2023.02.09 |
---|---|
[백준 25682][파이썬] 체스판 다시 칠하기 (0) | 2023.01.28 |
[백준 9020][파이썬] 골드바흐의 추측 소수 판별 (에라토스테네스의 체) (0) | 2023.01.26 |
[백준 10828][파이썬] 파이썬 스택 사용법 (0) | 2023.01.21 |
[백준 1065][파이썬] 한수 (0) | 2023.01.16 |