1780번: 종이의 개수
N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이때 다음의 규칙에 따라 자르려고 한다.
www.acmicpc.net

n = int(input())
paper = [list(map(int, input().split())) for _ in range(n)]
neg = 0
neut = 0
pos = 0
def clippaper(x, y, n):
global neg, neut, pos
check = paper[x][y]
for i in range(x, x + n):
for j in range(y, y + n):
if(paper[i][j] != check):
for k in range(3):
for l in range(3):
clippaper(x + k * n//3, y + l * n//3, n//3)
return
if(check == -1):
neg += 1
elif(check == 0):
neut += 1
else:
pos += 1
clippaper(0, 0, n)
print(f'{neg}\n{neut}\n{pos}')
반응형