취준시절/백준

[백준 1780] Python - 종이의 개수

MAYMIN 2021. 8. 25. 16:34
728x90
SMALL

위의 그림처럼 쉽게 생각하면 가능 !!

import sys

input = sys.stdin.readline

n = int(input())
arr = list()
for _ in range(n):
    arr.append(list(map(int,input().split())))
minus_one = 0
zero = 0
one = 0

def check(x,y,m):
    global minus_one,zero,one
    find_num=arr[x][y]
    for i in range(x,x+m):
        for j in range(y,y+m):
            if arr[i][j]!=find_num:
                find_num=-2
                break
    if find_num==-2:
        check(x, y, m // 3)
        check(x, y + m // 3, m // 3)
        check(x, y + (m // 3) * 2, m // 3)
        check(x + m // 3, y, m // 3)
        check(x + m // 3, y + m // 3, m // 3)
        check(x + m // 3, y + (m // 3) * 2, m // 3)
        check(x + (m // 3) * 2, y, m // 3)
        check(x + (m // 3) * 2, y + m // 3, m // 3)
        check(x + (m // 3) * 2, y + (m // 3) * 2, m // 3)
    if find_num==1:
        one+=1
    elif find_num==0:
        zero+=1
    elif find_num==-1:
        minus_one+=1
check(0,0,n)
print(minus_one)
print(zero)
print(one)

 

728x90
LIST