본문 바로가기
백준

[python] 2630. 색종이 만들기

by DylanMsK 2019. 10. 21.

문제 출처

2630. 색종이 만들기

 

풀이


def devide(x, y, t):
    global blue, white

    type = arr[y][x]
    flag = True
    for i in range(y, y+t):
        if not flag:
            break
        for j in range(x, x+t):
            if type != arr[i][j]:
                flag = False
                devide(x, y, t//2)
                devide(x+t//2, y, t//2)
                devide(x, y+t//2, t//2)
                devide(x+t//2, y+t//2, t//2)
                break
    if flag:
        if type == 0:
            white += 1
        else:
            blue += 1

N = int(input())
arr = [list(map(int, input().split())) for _ in range(N)]
blue, white = 0, 0
devide(0, 0, N)
print(white)
print(blue)

'백준' 카테고리의 다른 글

[python] 13900. 순서쌍의 곱의 합  (0) 2019.10.22
[python] 15953. 상금 헌터  (0) 2019.10.22
[python] 17471. 게리맨더링  (0) 2019.10.19
[python] 17143. 낚시왕  (0) 2019.10.19
[python] 17472. 다리 만들기 2  (0) 2019.10.19