본문 바로가기
ALGORITHM/SW Expert Academy

[SWEA/Python] 4836. 색칠하기

by 안녕나는현서 2021. 8. 13.
728x90

📌 문제

https://swexpertacademy.com/main/main.do

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

📌 문제 접근 방법

  1. 주어진 색칠 영역에 대해서 주어진 색깔의 숫자를 입력한다.
  2. 같은 색깔은 덧칠하지 않는다고 했으므로, 색칠 영역이 이미 같은 숫자로 채워져 있다면 continue
  3. 값이 3이상이면 보라색 (보라색 위에 또 빨강이나 파랑이 덧칠해질 경우도 있을텐데, 이 경우 숫자가 같지 않으므로 주어진 색깔의 숫자를 더할 수 있다. -> 값이 3이상이 될 수 있다.)

 

📌 코드

import sys

sys.stdin = open('input.txt')

T = int(input())

for t in range(1, T + 1):
    N = int(input())
    result = [[0] * 10 for _ in range(10)]

    for n in range(N):
        r1, c1, r2, c2, color = map(int, input().split())

        for i in range(r1, r2 + 1):
            for j in range(c1, c2 + 1):
                if result[i][j] == color:
                    continue
                result[i][j] += color

    cnt = 0
    for x in range(len(result)):
        for y in range(len(result[x])):
            if result[x][y] >= 3:
                cnt += 1

    print(f'#{t} {cnt}')
728x90

댓글