본문 바로가기
백준 알고리즘

[백준 2563][파이썬] 색종이. 이차원 배열

by 웅대 2023. 1. 25.
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
반응형

댓글