# 1220. Magnetic
# 큐를 활용
from collections import deque
# 교착상태를 계산하는 함수
def Magnetic(c, tb):
# 반시계 90도 회전 테이블
tb_cal = [[0] * 100 for _ in range(100)]
# 테이블을 반시계 방향으로 90도 돌린다.
for m in range(100):
for n in range(100):
tb_cal[99-n][m] = tb[m][n]
# 교착상태 개수
cnt = 0
# 100개의 줄에 대해서 계산
for i in range(100):
# 큐
q = deque()
for j in range(100):
if tb_cal[i][j] == 1 or tb_cal[i][j] == 2:
q.append(tb_cal[i][j])
# N극, S극 변수 초기화
mag_n = 0
# 큐가 빌 때까지 반복 (Main Algorithm)
while q:
# 큐에서 뽑는다.
cur = q.popleft()
# 1 : N극 성질 자성체
if cur == 1:
# 누적
mag_n += 1
# 2 : S극 성질 자성체
elif cur == 2:
# 교착상태 개수 증가
if mag_n > 0:
mag_n = 0
cnt += 1
# 답안 출력
print("#{} {}".format(c, cnt))
# 10개의 테스트 케이스가 주어진다.
for t in range(1, 10+1):
# 정사각형 테이블의 한 변의 길이가 주어진다.
N = int(input())
# 테이블 초기화
table = []
# 100 × 100 크기의 테이블의 초기 모습
for _ in range(100):
table.append(list(map(int, input().split())))
# 함수 실행
Magnetic(t, table)
2차원 리스트 90º 회전, Queue 또는 Stack 개념 적용