본문 바로가기
문제 풀이/백준

[S1] 백준 1992 - 쿼드트리 (Python3)

by JJong | 쫑 2024. 11. 10.

https://www.acmicpc.net/problem/1992


💡 해결방법

분할정복 알고리즘을 적용해 해결했다.

👀 풀이

풀이 설명


🧾코드

# BOJ 1992

N = int(input())
grid = [input() for _ in range(N)]

def sol(N, r=0, c=0):
    color = grid[r][c]
    for i in range(r, r+N):
        for j in range(c, c+N):
            if color != grid[i][j]:
				# 모두 같은 색이 아니라면
            	# 조건에 나온 순서대로 4분할로 쪼갠다.
                return '('+ sol(N//2, r, c) + sol(N//2, r, c + N//2) + sol(N//2, r + N//2, c) + sol(N//2, r+N//2, c+N//2) + ')'

	# 모두 같은 색이라면 색을 반환한다.
    return color

# 정답 출력
print(sol(N))

댓글