n = int(input())
m = [list(map(int, input())) for _ in range(n)]
def quadtree(x, y, n):
if n == 1:
return str(m[x][y])
result = []
for i in range(x, x + n):
for j in range(y, y + n):
# 색이 다르면, 다시 분할진행
if m[i][j] != m[x][y]:
result.append('(')
result.extend(quadtree(x, y, n//2))
result.extend(quadtree(x, y + n//2, n//2))
result.extend(quadtree(x + n//2, y, n//2))
result.extend(quadtree(x + n//2, y + n//2, n//2))
result.append(')')
return result
return str(m[x][y])
print(''.join(quadtree(0, 0, n)))
'문제풀이 > 백준(Boj) 문제풀이' 카테고리의 다른 글
[백준][그리디 알고리즘] 14487. 욱제는 효도쟁이야!! (파이썬/Python) (0) | 2021.10.04 |
---|---|
[백준][동적 계획법1] 11726. 2×n 타일링(파이썬/Python) (0) | 2021.10.04 |
[백준][그리디 알고리즘] 1744. 수 묶기 (파이썬/Python) (0) | 2021.10.03 |
[백준][그리디 알고리즘] 1439. 뒤집기 (파이썬/Python) (0) | 2021.10.03 |
[백준][그리디 알고리즘] 2720. 세탁소 사장 동혁 (파이썬/Python) (0) | 2021.10.03 |