본문 바로가기

알고리즘

python 백준2563 색종이(BOJ2563)

문제링크 : https://www.acmicpc.net/problem/2563

 

2563번: 색종이

가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록

www.acmicpc.net

문제는 색종이인데 예시 그림 보면 색이 하나도 없는 그런 문제였다.

나름 재밌는 문제였는데 2007년 초등부 2번문제였다는거에 살짝 현타왔다..

import sys

input = sys.stdin.readline

#0~100 까지의 가로 세로 좌표 평면 좌표 하나가 넓이 1로 생각
location = [[0] * 101 for _ in range(101)]

#매개변수로 받은 좌표에 마킹 하는 함수
def checkArea(a,b):
  for i in range(10):
    for j in range(10):
      location[a+i][b+j] += 1

#색종이 개수
n = int(input())

#색종이 위치 받으면서 좌표에 표시
for _ in range(n):
  a, b = map(int, input().split())
  checkArea(a, b)
#리턴값
result = 0
#좌표를 전체 방문하면서 1보다 크면 색종이가 덮힌것으로 생각하고 넓이 계산
for i in range(101):
  for j in range(101):
    if location[i][j] > 0:
      result += 1
print(result)