📒 알고 가야 하는 것
-재귀 함수
- 어떤 그룹 안에 모두 같은지 확인하기 위해서는 첫 번째 값을 찾고 그 값과 같은지를 계속 탐색하는 방식을 생각해야함.
📌 코드
import sys
def paper(y, x, n) :
global count_1
global count0
global count1
init = graph[y][x]
for i in range(y, y+n) :
for j in range(x, x+n) :
if init != graph[i][j] :
paper(y, x, n//3)
paper(y, x + n//3, n//3)
paper(y, x + n//3 * 2, n//3)
paper(y + n//3, x, n//3)
paper(y + n//3, x + n//3, n//3)
paper(y + n//3, x + n//3 * 2, n//3)
paper(y + n//3 * 2, x, n//3)
paper(y + n//3 * 2, x + n//3, n//3)
paper(y + n//3 * 2, x + n//3 * 2, n//3)
return
if init == 0 :
count0 += 1
elif init == 1 :
count1 += 1
elif init == -1 :
count_1 += 1
return
N = int(sys.stdin.readline())
graph = []
for _ in range(N) :
tmp = list(map(int, sys.stdin.readline().rstrip().split()))
graph.append(tmp)
global count_1
global count0
global count1
count1 = 0
count0 = 0
count_1 = 0
paper(0,0,N)
print(count_1)
print(count0)
print(count1)
📌 피드백
- 재귀함수가 얼마나 더 어려울지는 모르지만 기본에 대해서는 인지한듯
- 여기서 사용한 개념을 잊지말자