반응형
[문제 출처]
https://www.acmicpc.net/problem/2563
2563번: 색종이
첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변
www.acmicpc.net
[문제 풀이]
겹치게 붙여질 수 있는 검은 색종이가 붙은 영역의 넓이를 구하는 문제이다.
테스트 케이스는 3개의 색종이이지만, 최대 100개까지 붙을 수 있으므로 몇 겹으로 색종이가 겹쳐질지 모른다.
따라서 겹쳐지는 부분의 넓이를 구해서 빼거나 하는 방법으로는 안된다.
2차원 배열을 이용하는 문제로, 흰 도화지의 넓이만큼 2차원 배열을 선언하고, 검은 도화지가 붙은 부분의 값을 1로 저장한다.
겹쳐지더라도 몇번이고 1로 저장하면 되기 때문에, 여러 번 겹쳐져도 괜찮다.
후에 1의 개수를 셈으로서 검은 영역의 넓이를 계산할 수 있다.
#2563
n = int(input())
arr = [[0 for _ in range(101)] for _ in range(101)]
for i in range(n):
x, y = map(int, input().split())
for j in range(x, x+10):
for k in range(y, y+10):
arr[j][k] = 1
result = 0
for r in arr:
result += r.count(1)
print(result)
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 2751 수 정렬하기 2 (0) | 2022.11.10 |
---|---|
[python/파이썬] 백준 2869 달팽이는 올라가고 싶다 (0) | 2022.11.09 |
[python/파이썬] 백준 8958 OX퀴즈 (0) | 2022.11.07 |
[python/파이썬] 백준 3052 나머지 (0) | 2022.11.04 |
[python/파이썬] 백준 2566 최댓값 (0) | 2022.11.03 |