알고리즘/백준

[백준] 1992번 쿼드트리 (파이썬)

알감자 2022. 1. 2. 01:29
 

1992번: 쿼드트리

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

www.acmicpc.net

 

코드

n = int(input())
li = []

for _ in range(n):
    input_li = list(input())
    li.append(list(map(int, input_li)))

answer = []

def find(x, y, N):
    color = li[x][y]
    for i in range(x, x+N):
        for j in range(y, y+N):
            if li[i][j] != color:
                answer.append("(")
                find(x,y, N//2)
                find(x, y+N//2, N//2)
                find(x+N//2, y, N//2)
                find(x+N//2, y+N//2, N//2)
                answer.append(")")
                return
    
    if color == 0:
        answer.append("0")
    else:
        answer.append("1")

find(0,0,n)
print("".join(answer))