https://www.acmicpc.net/problem/2563

간단한 구현문제다.
시뮬레이션 문제는 특정 자료구조나 알고리즘이 필요하지않고 문제 그대로 구현하는 문제다.
풀이 과정
- 입력 처리: 색종이의 개수 n과 각 색종이의 좌표 (를 입력받습니다.
- 도화지 초기화: 1 크기의 배열을 0으로 초기화합니다.
- 영역 표시: 각 색종이가 덮는 영역을 배열에 1로 표시합니다. 좌표는 0부터 시작하므로 a−1,b−1부터 a+9,b+9까지 1로 채웁니다.
- 면적 계산: 배열에서 값이 1인 부분의 개수를 세어 최종 면적을 계산합니다.
import sys
n = int(sys.stdin.readline()) # 색종이의 수 입력
arr = [[0 for _ in range(100)] for _ in range(100)] # 100x100 도화지 배열 생성
count = 0
for _ in range(n):
a, b = map(int, sys.stdin.readline().split()) # 색종이의 왼쪽 아래 모서리 좌표 입력
for i in range(a-1, a+9): # 10x10 영역을 1로 채우기
for j in range(b-1, b+9):
arr[i][j] = 1
for i in range(100):
for j in range(100):
if arr[i][j] == 1: # 1로 표시된 부분을 세어 면적 계산
count += 1
print(count) # 결과 출력