# 색칠하기 함수
def painting(purple):
# 색칠할 박스 받아오기 [행 시작, 열 시작, 행 끝, 열 끝, 색깔]
box = list(map(int, input().split()))
# 색 (1: 빨강, 2: 파랑)
color = box[4]
# 왼쪽 위 모서리 에서 오른쪽 아래 모서리까지 색칠
for x in range(box[0], box[2] + 1):
for y in range(box[1], box[3] + 1):
# 같은 색은 겹치지 않는다는 조건.
board[x][y] += color
if board[x][y] == 3:
purple += 1
return purple
tc = int(input())
for idx in range(1, tc+1):
n = int(input()) # 색칠할 박스의 개수
board = [[0] * 10 for _ in range(10)] # 색칠할 보드
purple = 0
# 주어진 박스 개수만큼 반복
for i in range(n):
# 색칠하기 함수를 불러와, 보라색 개수 업뎃
purple = painting(purple)
print('#{} {}'.format(idx, purple))
* 같은 색은 겹치지 않는다는 조건이 없을 경우
# 색칠하기 함수
def painting(purple):
# 색칠할 박스 받아오기 [행 시작, 열 시작, 행 끝, 열 끝, 색깔]
box = list(map(int, input().split()))
# 색 (1: 빨강, 2: 파랑)
color = box[4]
# 왼쪽 위 모서리 에서 오른쪽 아래 모서리까지 색칠
for x in range(box[0], box[2] + 1):
for y in range(box[1], box[3] + 1):
# 같은 색은 겹치지 못하게 예외처리한 코드 (같은 색은 겹치지 않는다는 조건 없을경우)
# 해당 블럭에 아무것도 색칠 안되어 있다면 색칠하기
if board[x][y] == 0:
board[x][y] = color
# 해당 블럭에 다른 색이 색칠되어 있다면 보라색이 된다(3)
# (같은 색이 아니고, 보라색이 아님)
elif board[x][y] not in (color, 3):
board[x][y] = 3
purple += 1
return purple
tc = int(input())
for idx in range(1, tc+1):
n = int(input()) # 색칠할 박스의 개수
board = [[0] * 10 for _ in range(10)] # 색칠할 보드
purple = 0
# 주어진 박스 개수만큼 반복
for i in range(n):
# 색칠하기 함수를 불러와, 보라색 개수 업뎃
purple = painting(purple)
print('#{} {}'.format(idx, purple))
'Algorithm > SW Expert Academy' 카테고리의 다른 글
[Python] 4839. 이진탐색 (0) | 2021.09.06 |
---|---|
[Python] 4837. 부분집합의 합 (0) | 2021.09.06 |
[Python] 1210. ladder1 (0) | 2021.09.06 |
[Python] 1954. 달팽이 숫자 (0) | 2021.08.11 |
[Python] 1209. sum (0) | 2021.08.11 |