본문 바로가기

알고리즘 문제풀이

swea 4836. 색칠하기 Python

t = int(input())
for tc in range(1,t+1):
    n = int(input())
    arr = [list(map(int, input().split())) for _ in range(n)]
    cnt = [[0] * 10 for _ in range(10)]

    count = 0
    for a in range(len(arr)):
        r1 = arr[a][0]
        c1 = arr[a][1]
        r2 = arr[a][2]
        c2 = arr[a][3]
        color = arr[a][4]
        for i in range(r1, r2+1):
            for j in range(c1,c2+1):
                if cnt[i][j] == 0:
                    cnt[i][j] = color
                elif cnt[i][j] != color:
                    cnt[i][j] = 3
        purple = 0
        for x in range(10):
            for y in range(10):
                if cnt[x][y] == 3:
                  purple += 1
    print(f'#{tc} {purple}')

실수 한 부분

1. cnt 리스트를 테스트케이스 용 for문 밖에 있었다.

cnt가 초기화 되지 않음 => 이미 그려진 도화지 위에다가 색을 계속 칠함

2. 색을 칠 할 때 단순히 cnt\[i\]\[j\] +=1 로 계속 더해 갔음
색 구분없이 cnt가 계속 추가되어짐