코딩테스트/BOJ

[백준][분할정복] 1992. 쿼드트리

박소민 2023. 3. 3. 14:18
1992. 쿼드트리
 

1992번: 쿼드트리

첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또

www.acmicpc.net

 

  • 파이썬 코드
    • global로 변수 받아오기
n=int(input())
lst=[]
r,c,size=0,0,n;
answer=""
for i in range(n):
    lst.append(list(map(int,input().rstrip())))


def divide(r,c,size):
    global answer
    rEnd=r+size
    cEnd=c+size
    sum=0
    for i in range(r,rEnd):
        for j in range(c,cEnd):
            sum+=lst[i][j]

    if sum==size*size:
        answer+="1"
    elif sum==0:
        answer+="0"
    else:

        if size/2<1: return

        answer+="("
        half=size//2
        divide(r,c,half)
        divide(r, c+half, half)
        divide(r + half, c, half)
        divide(r+half, c+half, half)
        answer+=")"

divide(r,c,size)
print(answer)