N = int(input())
square = [[0] * 8] * N
for i in range(N):
row = list(map(int, input().split()))
square[i] = row
blue = 0
white = 0
# 세로 방향 x, 가로 방향 y
# 사분면
def split(x, y, n):
# 전역 변수
global blue, white
paper_check = square[x][y]
for i in range(x, x + n):
for j in range(y, y + n):
# paper_check과 같은 숫자가 아니면, 같은 색이 아니므로
# 분리해서 다시 판단하도록 해줍니다.
if(paper_check != square[i][j]):
split(x, y, n//2) # 왼쪽 위
split(x + n//2, y, n//2), # 오른쪽 위
split(x, y + n//2, n//2) # 왼쪽 아래
split(x + n//2, y + n//2, n//2) # 오른쪽 아래
return
if paper_check:
blue += 1
else:
white += 1
split(0, 0, N)
print(f'{white}\n{blue}')
'# 코딩 문제 관련 > 파이썬' 카테고리의 다른 글
백준 1780번(python) (0) | 2020.05.04 |
---|---|
백준 1992번(python) (0) | 2020.05.04 |
백준 2164번(python) (0) | 2020.05.03 |
백준 18258번(python) (0) | 2020.05.03 |
백준 4949번(python) (0) | 2020.05.02 |