시작이 반

[백준] 1992번 (python 파이썬) 본문

알고리즘/백준

[백준] 1992번 (python 파이썬)

G_Gi 2021. 3. 6. 22:18
SMALL

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

백준 2630문제와 같은 문제이다.

tmdrl5779.tistory.com/101

 

[백준] 2630번 (python 파이썬)

Divide and Conquer에 대한 문제이다. 1. 해당 종이가 일괄된 색이 아니면 4등분을 한다. 2. 4등분된 종이를 다시 검사한다. 1, 2를 일괄된 색일때까지 반복한다. 처음 푼방법 종이를 모든 수에 대해 검사

tmdrl5779.tistory.com

출력부분만 고려하면 된다.

 

n = int(input())
graph = [list(map(int, input())) for _ in range(n)]


def dnc(x, y, n):
    check = graph[x][y]
    for i in range(x, x + n):
        for j in range(y, y + n):
            if check != graph[i][j]:
                check = -1
                break

    if check == -1:
        print("(", end='')
        n = n // 2
        dnc(x, y, n)  # 오른쪽 위
        dnc(x, y + n, n)  # 왼쪽 위
        dnc(x + n, y, n)  # 오른쪽 아래
        dnc(x + n, y + n, n)  # 왼쪽 아래
        print(")", end='')

    elif check == 1:
        print(1, end='')
    else:
        print(0, end='')


dnc(0, 0, n)
LIST