Skip to content

Commit 3334134

Browse files
committed
[BOJ] 쿼드 트리 / 실버 1 / 45분
https://www.acmicpc.net/problem/1992
1 parent 284f446 commit 3334134

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# 재귀적으로 정사각형을 4분할한다.
2+
# 재귀 시작시 ( 출력, 종료시 ) 출력
3+
# 재귀 종료조건은 정사각형의 모든 값이 같거나, 정사각형이 길이가 1일때
4+
5+
import sys
6+
7+
8+
def recursion(arr, n, row, col):
9+
global ans
10+
11+
if n == 1:
12+
ans.append(arr[row][col])
13+
return
14+
15+
flag = 0
16+
first = arr[row][col]
17+
for i in range(n):
18+
for j in range(n):
19+
if arr[row + i][col + j] != first:
20+
flag = 1
21+
break
22+
23+
if flag == 0:
24+
ans.append(first)
25+
return
26+
else:
27+
ans.append('(')
28+
recursion(arr, n // 2, row, col)
29+
recursion(arr, n // 2, row, col + n // 2)
30+
recursion(arr, n // 2, row + n // 2, col)
31+
recursion(arr, n // 2, row + n // 2, col + n // 2)
32+
ans.append(')')
33+
34+
35+
36+
inp = sys.stdin.readline
37+
38+
n = int(inp())
39+
arr = []
40+
41+
for _ in range(n):
42+
arr.append(inp().strip())
43+
44+
ans = []
45+
46+
recursion(arr, n, 0, 0)
47+
48+
for i in range(len(ans)):
49+
print(ans[i], end="")

0 commit comments

Comments
 (0)