[백준] 1992: 쿼드트리 - 파이썬[python]

다인·2024년 11월 21일

백준

목록 보기
112/112
post-thumbnail

앞 문제랑 거의 똑같아서 어렵지 않게 풀었다

코드

import sys
input = sys.stdin.readline

N = int(input())
tree = [list(map(int, input().strip())) for _ in range(N)]
res = []

def div(x, y, N):
    fst = tree[x][y]
    for i in range(x, x+N):
        for j in range(y, y+N):
            if fst != tree[i][j]:
                res.append('(')
                div(x, y, N//2)
                div(x, y + N//2, N//2)
                div(x + N//2, y, N//2)
                div(x + N//2, y + N//2, N//2)
                res.append(')')
                return
    if fst == 0:
        res.append(0)
    else:
        res.append(1)

div(0, 0, N)
print(*res, sep='')
  • 입력이 공백으로 주어지지 않아서 split을 쓰지 않았고, 그래서 strip을 사용했다.
  • 괄호를 추가해야 되기 때문에 4분할로 나누어지기 시작하는 부분에 (를 넣고, 끝나는 부분에 )를 넣었다.
  • 결과값을 *연산자로 간편히 출력했다.

결과

업로드중..

0개의 댓글