draft 2021-02-03
https://www.acmicpc.net/problem/2563
visited 배열을 설정하고, 주어진 좌표값에 따라 색칠하고, 결과를 출력하는 단순한 문제.
색종이가 겹치는 부분을 따로 구분해 연산하지 않으므로 단순하게 처리한다.
지금까지는 연습삼아 python 내장함수를 사용하지 않고 sum
등을 일일히 구현했는데,
리팩토링 할 때는 내장함수를 적극적으로 활용하는 방법을 연습해 보자.
# STEP 0. 입력받기
T = int(input())
papers = [list(map(int, input().split())) for _ in range(T)]
# STEP 1. visited 배열 설정하기
board = [[0 for _ in range(100)] for _ in range(100)]
# STEP 2. 색종이 칠하기
# 사실 색종이의 좌표는 좌하단을 영점으로 두기 때문에, 우상단([0, 0])을 영점으로 설정하는 board와는 엄밀히 말하면 출력된 모양새가 다르다. 유의하자!
# 색종이의 모서리의 값을 한 개씩 순회하며 시작점을 꺼내고,
for i in range(T):
# 각 시작점부터 10칸을 칠합니다:
for r in range(10):
for c in range(10):
board[papers[i][1] + r][papers[i][0] + c] = 1
# STEP 3. 전체 도화지를 순회하며 칠해진 값 더하기
colored = 0
for r in range(100):
for c in range(100):
colored += board[r][c]
# STEP 4. 출력하기
print(colored)