Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

작은 지식주머니

백준 파이썬 1780 종이의 개수 본문

백준 python 기록

백준 파이썬 1780 종이의 개수

작지 2021. 10. 11. 10:16

https://www.acmicpc.net/problem/1780

 

1780번: 종이의 개수

N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수

www.acmicpc.net

 

배열 전체를 탐색하면서 첫 체크와 다른숫자가 나오면 9등분시켜서 재귀로 탐색한다.

import sys

n=int(input())
s=[list(map(int,sys.stdin.readline().split())) for i in range(n)]

minus=0
zero=0
one=0

def search(x,y,n):

    global minus,zero,one

    check=s[x][y]
    for i in range(x,x+n):
        for j in range(y,y+n):
            if s[i][j] != check:
                for k in range(3):
                    for h in range(3):
                        search(x+k*(n//3),y+h*(n//3),n//3)
                return

    if check == -1:
        minus += 1
    elif check == 0:
        zero += 1
    elif check == 1:
        one += 1

search(0,0,n)
print(minus)
print(zero)
print(one)
Comments