[분할정복] 백준 - 색종이 만들기 2630번

황준승·2021년 6월 6일
0
post-thumbnail

색종이 만들기

쿼드 트리의 문제와 유사한 문제와 코드라서 자세한 설명을 보고 싶으면 목록열기 클릭 -> 쿼드트리 코드를 한번 보시면 이해하기 쉬울 것이다.

n = int(input())

graph = []

for _ in range(n):
    graph.append(list(map(str, input().split())))

p = [0,0]

def quad(y0,x0,y1,x1,n):
    if n == 1:
        return graph[y0][x0]

    a = n // 2

    r1 = quad(y0,x0,y1+a,x1+a,a)
    r2 = quad(y0,x0+a,y1-a,x1,a)
    r3 = quad(y0+a,x0,y1,x1-a,a)
    r4 = quad(y0+a,x0+a,x1,y1,a)

    if r1 == r2 == r3 == r4 and len(r1) == 1:
        return r1

    for i in [r1,r2,r3,r4]:
        if i == '0':
            p[0] += 1

        elif i == '1':
            p[1] += 1

    return p           

quad(0,0,n,n,n)

print(p[0])
print(p[1])    
profile
다른 사람들이 이해하기 쉽게 기록하고 공유하자!!

0개의 댓글