https://www.acmicpc.net/problem/1780
1780번: 종이의 개수
N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이때 다음의 규칙에 따라 자르려고 한다.
www.acmicpc.net
import sys
input = sys.stdin.readline
N = int(input())
paper = []
for _ in range(N):
paper.append(list(map(int, input().split())))
def counting_papers(r, c, n):
check = paper[r][c]
flag = False
for i in range(r, r+n):
for j in range(c, c+n):
if paper[i][j] != check:
flag = True
break
if flag:
break
result = [0, 0, 0]
if flag:
for k in range(3):
for l in range(3):
tmp = counting_papers(r+n//3*k, c+n//3*l, n//3)
result = [result[i] + tmp[i] for i in range(3)]
return result
if check == -1:
return [1,0,0]
elif check == 0:
return [0,1,0]
else:
return [0,0,1]
res = counting_papers(0,0,N)
for answer in res:
print(answer)
'코딩테스트 준비 > [백준]' 카테고리의 다른 글
[백준] 1074번 Z 파이썬 (0) | 2021.07.18 |
---|---|
[백준] 1992번 쿼드 트리 (0) | 2021.07.18 |
[백준] 1629 곱셈 파이썬 (0) | 2021.07.17 |
[백준] 2211번 네트워크 복구 (0) | 2021.07.16 |
[백준] 4485번 녹색 옷 입은 애가 젤다지? (0) | 2021.07.15 |