(Python) 1992. 쿼드 트리

접근하다

  • 왼쪽 상단 위치를 기준으로 nxn 크기를 비교하고 서로 다른 값이 있는지 확인합니다.

    • nxn을 분기로 나누는 재귀 호출(있는 경우)
    • 존재하지 않는 경우 왼쪽 상단에 값을 인쇄하십시오.
import sys
input = sys.stdin.readline

n = int(input())
arr = (input() for _ in range(n))

def quad_tree(cur_x, cur_y, num):
    cur = arr(cur_x)(cur_y)
    for i in range(cur_x, cur_x + num):
        for j in range(cur_y, cur_y + num):
            if cur !
= arr(i)(j): print("(", end="") quad_tree(cur_x, cur_y, num//2) quad_tree(cur_x,cur_y + num//2, num//2 ) quad_tree(cur_x + num//2, cur_y, num//2) quad_tree(cur_x + num//2, cur_y + num//2, num//2) print(")", end="") return if cur == '0': #arr을 input으로 받지 않았기 때문에 char 비교 print("0", end="") return if cur == '1': print("1", end="") quad_tree(0, 0, n)