문제 출처: https://www.acmicpc.net/problem/2563
Silver 5
처음엔, N만큼 100을 곱한 후에 각 좌표마다 겹치는 넓이를 빼줘야한다고 생각했다.
하지만 프로그래밍적으로 생각하니 해당 방법은 복잡할 것 같아서 쉽게 생각해보니 영역마다 체크를해서 해당 체크된 부분만 counting을 하는 것이다.
문제처럼 칸이 있는 배경이라면 넓이는 가로 * 세로지만, 간혹 안에 있는 칸의 개수로 셀수 있다.
1 x 2 = 2
와해당 넓이의 칸의 개수는 2이라 넓이가 2
인 것 처럼
if __name__ == '__main__':
N = int(input())
paper = [[0]*101 for _ in range(101)]
area = 0
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):
paper[j][k] = 1
for row in paper:
if 1 in row:
area += sum(row)
print(area)