반응형

-풀이

import sys
input = sys.stdin.readline
N=int(input())
paper = [list(map(int, input().split())) for i in range(N)]
minus = 0
zero = 0
plus = 0

def cut(x,y,n):
  global minus, zero, plus

  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):
            cut(x+n//3*k, y+n//3*l, n//3)
        return

  if check == 1:
    plus += 1
  elif check == 0:
    zero += 1
  elif check == -1:
    minus += 1
cut(0,0,N)
print(minus)
print(zero)
print(plus)

 

-풀이 설명

3x3칸 중에 다른 값이 들어있다면, 3x3전부를 탐색하여 plus, zero, minus 개수를 세주면 해결완료.

+ Recent posts