알고리즘/백준
[백준] 1780번 (python 파이썬)
G_Gi
2021. 3. 8. 18:22
SMALL
NxN행렬을 검사한뒤 일괄된 숫자가 아니면 9등분 하는 문제이다.
9등분한 행렬을 각각 다시 재귀를 돌려서 검사한다.
백준 1021번 문제와 유사한 문제이다.
[백준] 1021번 (python 파이썬)
ex) 10 3 2 9 5 2 queue = 1 2 3 4 5 6 7 8 9 10 왼쪽으로 회전 1번 queue = 2 3 4 5 6 7 8 9 10 1 pop 9 queue = 3 4 5 6 7 8 9 10 1 오른쪽으로 회전 3번 queue = 9 10 1 3 4 5 6 7 8 pop 5 queue = 10 1 3 4 5..
tmdrl5779.tistory.com
n = int(input())
graph = [list(map(int, input().split())) for _ in range(n)]
one_count = 0
zero_count = 0
m_one_count = 0
def dnc(x, y, n):
global one_count, zero_count, m_one_count
check = graph[x][y]
for i in range(x, x + n):
for j in range(y, y + n):
if check != graph[i][j]:
check = -2
break
if check == -2:
n = n // 3
dnc(x, y, n)
dnc(x, y + n, n)
dnc(x, y + 2 * n, n)
dnc(x + n, y, n)
dnc(x + n, y + n, n)
dnc(x + n, y + 2 * n, n)
dnc(x + 2 * n, y, n)
dnc(x + 2 * n, y + n, n)
dnc(x + 2 * n, y + 2 * n, n)
elif check == 1:
one_count += 1
elif check == 0:
zero_count += 1
else:
m_one_count += 1
dnc(0, 0, n)
print(m_one_count)
print(zero_count)
print(one_count)
LIST