ip=int(input())
l = [[0 for j in range(100)] for i in range(100)] #0으로 초기화
for i in range(ip):
x, y=map(int, input().split())
for i in range(100):
for j in range(100):
if(i>=x and i<x+10) and (j>=y and j<y+10):
l[i][j]+=1
k=0
for i in range(100):
for j in range(100):
if(l[i][j]>1):
k+=l[i][j]-1
m=ip*100
print(m-k)
100*100 도화지를 초기화 한 뒤,
색종이 한 장을 도화지 위에 올려놓으면 1을 더해주도록 했다. 이후 겹치는 부분은 2인 값 이상을 갖고 있을 것이다. 겹치는 값들을 모든 색종이의 넓이에서 빼주면 된다.
처음에는 색종이 수를 받는 것을 잊고 3장을 기준으로 코드를 적었다.. 문제를 제대로 읽고 풀어야겠다!!!
유심히 봐야 할 코드는 아래와 같다.
for i in range(100):
for j in range(100):
if(l[i][j]>1):
k+=l[i][j]-1
여기서 -1을 빼준 이유는 색종이가 존재하는 좌표의 값은 남겨두기 위해서 이다. 예를 들면 2장이 겹쳤는데 2장 빼주면 안되는 것과 의미가 같다.
2차원 배열을 초기화 해주는 코드도 잊지 말고 기억하자!
l = [[0 for j in range(100)] for i in range(100)]