접근하다
- 왼쪽 상단 위치를 기준으로 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)