import sys
input = sys.stdin.readline
N = int(input())
graph = [list(map(int, input().rstrip())) for _ in range(N)]
def quad(x, y, N):
isSame = True # 플래그
color = graph[y][x]
# 전부 같은 색인지 확인
for i in range(N):
for j in range(N):
if graph[y+j][x+i] != color:
isSame = False
break
if not isSame:
break
# 같은 색이면 출력
if isSame:
print(color, end="")
# 그 외는 재귀
else:
print("(", end="")
quad(x, y, N//2)
quad(x + N//2, y, N//2)
quad(x, y + N//2, N//2)
quad(x + N//2, y + N//2, N//2)
print(")", end="")
quad(0, 0, N)
https://tmdrl5779.tistory.com/102
참고해서 풀었습니다.