[백준] #1780 종이의 개수 python

2023. 5. 18. 10:25

 

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

 

1780번: 종이의 개수

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

www.acmicpc.net

 

 

 

📕 설명 📕

dfs를 활용하여 종이가 있는 부분을 찾기 위해서 size 살피었다.

 

 

🧑🏻‍💻 나의 풀이 🧑🏻‍💻

import sys
def solution(x, y, N):
    global minus_one, zero, one
    color = paper[x][y]
    for i in range(x, x + N):
        for j in range(y, y + N):
            if color != paper[i][j]:
                for k in range(3):
                    for p in range(3):
                        solution(x + k * N // 3, y + p * N // 3, N // 3)
                return
    #print(color)
    if color == 0:
        zero += 1
    elif color == 1:
        one += 1
    elif color == -1:
        minus_one += 1

if __name__ == '__main__':
    N = int(sys.stdin.readline())
    paper = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
    minus_one, zero, one = 0, 0, 0
    solution(0, 0, N)
    print(f'{minus_one}\n{zero}\n{one}')

BELATED ARTICLES

more