코딩테스트/Python
[Python] 백준 #1992 - 쿼드트리
yo~og
2022. 5. 23. 13:21
문제
https://www.acmicpc.net/problem/1992
1992번: 쿼드트리
첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또
www.acmicpc.net
풀이
import sys
n = int(input())
arr = [list(map(int,list(sys.stdin.readline().strip()))) for _ in range(n)]
def tree(x,y,n):
check = arr[x][y] # 체크할 기준 설정
for i in range(x,x+n):
for j in range(y,y+n):
if check != arr[i][j]: # 다른게 있으면
check = -1 # 다르다고 체크
break
if check == -1: # 다르면 쪼개기
print("(",end="")
n//=2
tree(x,y,n) # 왼쪽 위
tree(x,y+n,n) # 오른쪽 위
tree(x+n,y,n) # 왼쪽 아래
tree(x+n,y+n,n) # 오른쪽 아래
print(")",end="")
elif check == 0:
print("0",end="")
else:
print("1",end="")
tree(0,0,n)
체크할 기준을 설정해주고 범위 내에 다른게 있으면 쪼개준다.