프로그래머스 쿼드압축 후 개수 세기와 같은 유형의 문제다
다만 출력할 때 압축을 진행하는 경우 ( )를 print하는 것이 필요하다
소스 코드
n = int(input())
arr = [list(map(int, input())) for _ in range(n)]
def comp(x, y, n):
init = arr[x][y]
for i in range(x, x+n):
for j in range(y, y+n):
if init != arr[i][j]:
init = -1
break
if init == -1:
print('(', end='')
n = n // 2
comp(x, y, n) # 오른쪽 위
comp(x, y+n, n) # 왼쪽 위
comp(x+n, y, n) # 오른쪽 아래
comp(x+n, y+n, n) # 왼쪽 아래
print(')', end='')
elif init == 0:
print(0, end='')
else:
print(1, end='')
comp(0, 0, n)