본문 바로가기
Algorithm/etc

[파이썬] 백준 1992 : 쿼드트리 (실버1)

by 베짱이28호 2023. 6. 5.

[파이썬] 백준 1992 : 쿼드트리 (실버1)

 

 

1992번: 쿼드트리

첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또

www.acmicpc.net


문제


풀이

0.방향성 생각

탐색하면서 기준점이랑 다른게 하나라도 나올경우 재귀 호출한다.

괄호의 경우에는 현재 탐색하는 영역에서 기준점과 다른게 하나라도 나올경우 괄호를 열고 탐색하고 괄호를 닫아준다.

0.방향성 생각

1. 전체코드

 

import sys
input = sys.stdin.readline

n = int(input())
arr = []
answer = ''
for i in range(n):
    arr.append(list(input()))

def solution(x,y,N) :
    global answer
    color = arr[y][x]
    d = N//2
    for i in range(y,y+N) :
        for j in range(x,x+N) :
            if color != arr[i][j] :
                answer += '('
                solution(x,y,d)
                solution(x+d,y,d)
                solution(x,y+d,d)
                solution(x+d,y+d,d)
                answer += ')'
                return 
    answer += color
solution(0,0,n)
print(answer)

 

코멘트

괄호가 언제 열리고 닫히는지만 잘 알면 쉽게 풀 수 있다.

댓글