👙 [문제]
인덱스가 있는 10x10 격자에 빨간색과 파란색을 칠하려고 한다.
N개의 영역에 대해 왼쪽 위와 오른쪽 아래 모서리 인덱스, 칠할 색상이 주어질 때, 칠이 끝난 후 색이 겹쳐 보라색이 된 칸 수를 구하는 프로그램을 만드시오.
[input]
3
2
2 2 4 4 1
3 3 6 6 2
3
1 2 3 3 1
3 6 6 8 1
2 3 5 6 2
3
1 4 8 5 1
1 8 3 9 1
3 2 5 8 2
[output]
#1 4
#2 5
#3 7
## 내 해결방법의 핵심은 input값으로 주어진 색깔의 숫자를 고려하기 않았다는 것.
## 어차피 input 으로 들어오는 색깔은 빨간색과 파란색 뿐이니
## 둘이 마주치기만 하면 보라색으로 만들어 진다는 것을 이용.
import sys, pprint
sys.stdin = open("input.txt")
T = int(input())
for tc in range(1, T+1):
arr = [[0]*10 for _ in range(10)]
N = int(input())
cnt = 0
for _ in range(N):
# 색깔의 숫자에 대하여 사용해주진 않을 것이지만
# input으로 들어온 이상 변수값으로 받아주지 않으면
# 변수가 하나 모자라 value error가 뜬다
# 에러를 내지 않기 위해 받아만 준다
dr_start, dc_start, dr_end, dc_end, color = map(int,input().split())
for i in range(dr_start, dr_end+1):
for j in range(dc_start, dc_end+1):
# 만약 해당 좌표에 이미 색이 칠해진 상태라면
# 색깔이 하나 더 만나면 보라색이 되므로
# cnt를 1 높여준다.
if arr[i][j] == 1:
cnt+=1
# 만약 아무것도 없는 0의 상태라면 흰색
# 빨간색이던 보라색이던 하나가 칠해지니까 1 높여준다.
elif arr[i][j] == 0:
arr[i][j]+= 1
print("#{} {}".format(tc, cnt))
'# 3. APS > SWEA' 카테고리의 다른 글
SWEA # Python_D2_2005_파스칼의 삼각형 (0) | 2021.02.25 |
---|---|
SWEA # Python_D2_4861_회문 (0) | 2021.02.21 |
SWEA # Python_D2_2007_패턴 마디의 길이 ✅ (0) | 2021.02.20 |
SWEA # Python_D2_1989_초심자의 회문 검사 ✅ (0) | 2021.02.20 |
SWEA # Python_D2_1288_새로운 불면증 치료법 (0) | 2021.02.20 |