import sys


def div_conq(x, y, n):

    global count_white, count_blue, count_fcn

    count_fcn += 1

    now_color = paper[x][y]

    for i in range(x, x+n):

        for j in range(y, y+n):

            if now_color != paper[i][j]:

                half_n = n//2

                div_conq(x, y, half_n)

                div_conq(x + half_n, y, half_n)

                div_conq(x, y + half_n, half_n)

                div_conq(x + half_n, y + half_n, half_n)

                return

    if now_color == 0:

        count_white += 1

    else:

        count_blue += 1


if __name__ == '__main__':

    N = int(sys.stdin.readline().rstrip())

    paper = list()

    for _ in range(N):

        paper.append(list(map(int, sys.stdin.readline().rstrip().split())))


    count_white, count_blue, count_fcn = 0, 0, 0


    div_conq(0, 0, N)

    print(count_white, count_blue, sep='\n')

    print(count_fcn)



2630 색종이 만들기 문제 풀이 보면서 짜고 공부중인데 파이썬 스코프가 도최 감이 안와


일반 변수는 global 설정해야 함수에서 접근되는데 왜 list는 그런거 없이 그냥 되는건지 모르겠어