D2
Problem
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
Solution
1. 빨간색과 파란색의 범위를 따로 색칠한 후, 만약 한 곳에 색칠해진다면 보라색이 되므로 카운팅한다.
Code
for test_case in range(1, int(input()) + 1):
N = int(input())
arr = [list(map(int, input().split())) for _ in range(N)]
page_red = [[0 for _ in range(10)] for _ in range(10)]
page_blue = [[0 for _ in range(10)] for _ in range(10)]
purple = 0
for i in range(N):
for k in range(arr[i][2] - arr[i][0] + 1):
for l in range(arr[i][3] - arr[i][1] + 1):
if arr[i][-1] == 1:
# 빨간 색 칠하기
page_red[arr[i][0] + k][arr[i][1] + l] = 1
else:
# 파란색 칠하기
page_blue[arr[i][0] + k][arr[i][1] + l] = 1
for i in range(10):
for j in range(10):
# 빨간색 + 파란색 >=2 이면 퍼플
if page_red[i][j] + page_blue[i][j] >= 2:
purple += 1
print(f'#{test_case} {purple}')
<부족한 부분은 댓글로 남겨주시면 저에게 도움이 됩니다!>
<그림 출처: SWEA 색칠하기>
반응형
'Algorithm > SW Expert Academy Review' 카테고리의 다른 글
1209. [S/W 문제해결 기본] 2일차 - Sum (0) | 2023.03.05 |
---|---|
2001. 파리 퇴치 (0) | 2023.03.05 |
4837. [파이썬 S/W 문제해결 기본] 2일차 - 부분 집합의 합 (0) | 2023.03.05 |
16268. 풍선팡2 (2) | 2023.03.05 |
9490. 풍선팡 (2) | 2023.03.05 |