[문제]
https://www.acmicpc.net/problem/1992
[풀이]
재귀 문제.. 분할 정복법 문제
2021.08.11 - [문제풀이/BOJ] - [Python] BOJ/백준 2630번 색종이 만들기
위 문제랑 거의 똑같다.
[코드]
import sys
def quadtree(x, y, 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]: # 색이 다른 경우 다시 4분할
n = n // 2
result.append('(')
result.extend(quadtree(x, y, n)) # 오른쪽 위
result.extend(quadtree(x, y + n, n)) # 왼쪽 위
result.extend(quadtree(x + n, y, n)) # 오른쪽 아래
result.extend(quadtree(x + n, y + n, n)) # 왼쪽 아래
result.append(')')
return result
return str(image[x][y])
n = int(sys.stdin.readline())
image = [list(map(int, sys.stdin.readline()[:-1])) for _ in range(n)]
print(''.join(quadtree(0, 0, n)))
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 10026번 적록색약 (0) | 2022.08.18 |
---|---|
[Python] BOJ/백준 1010번 다리 놓기 (0) | 2022.08.02 |
[Python] BOJ/백준 2667번 단지번호붙이기 (0) | 2022.07.04 |
[Python] BOJ/백준 2178번 미로 탐색 (0) | 2022.06.30 |
[Python] BOJ/백준 11286번 절댓값 힙 (0) | 2022.06.30 |