N = int(input())
image = [list(map(int, input())) for _ in range(N)]
def quadtree(x, y, n):
# n = 1, 하나의 픽셀만 볼 경우,
if(n == 1):
return str(image[x][y])
result = []
for i in range(x, x + n):
for j in range(y, y + n):
# 색이 다르면, 다시 분할하자.
if(image[i][j] != image[x][y]):
# append와 extend의 차이는
# extend는 list, tuple, dict 등의 iterable object를
# python list의 끝에 append 해주는 것.
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(image[x][y])
print(''.join(quadtree(0, 0, N)))
'# 코딩 문제 관련 > 파이썬' 카테고리의 다른 글
백준 1629번(python) (0) | 2020.05.04 |
---|---|
백준 1780번(python) (0) | 2020.05.04 |
백준 2680번(python) (0) | 2020.05.03 |
백준 2164번(python) (0) | 2020.05.03 |
백준 18258번(python) (0) | 2020.05.03 |