✅ indexing이 좀 헷갈리는 문제였다. 헷갈릴 땐 찍어보면서 하기!
# [0의 개수, 1의 개수]를 원소로 갖는 이차원 배열을 만드는 재귀함수
def check(s):
n = len(s)
if n == 1:
return s[0][0]
temp= [[] for _ in range(n//2)]
for i in range(1,n,2):
for j in range(1,n,2):
zero = s[i][j][0] + s[i][j-1][0] + s[i-1][j][0] + s[i-1][j-1][0]
one = s[i][j][1] + s[i][j-1][1] + s[i-1][j][1] + s[i-1][j-1][1]
# 압축
if one == 0: zero = 1
if zero == 0: one = 1
temp[i//2].append([zero, one])
return check(temp)
def solution(arr):
n = len(arr)
first = [[] for _ in range(n//2)]
# 초기 이차원 배열 만들기
for i in range(1,n,2):
for j in range(1,n,2):
temp = [arr[i][j], arr[i][j-1], arr[i-1][j], arr[i-1][j-1]]
one = temp.count(1)
zero = temp.count(0)
if one == 0: zero = 1
if zero == 0: one = 1
first[i//2].append([zero, one])
return check(first)