문제가 복잡해 보이지만 간단히 말하면 N,S짝을 찾아서 카운트하는 문제이다.
위에 N극이 있으므로 N극부터 시작해야 테이블 밑으로 떨어진 것을 카운트하지 않는다.
N부터 시작해 S로 끝난다. 따라서 N을 발견하면, S를 발견할 때 카운트를 1한다. S말고 N을 발견하면 카운트하지 않는다.
N을 발견하면 flag를 1로 만들고 이 상태에서 S를 발견하면 flag를 다시 0으로 바꾼 후 result에 1을 더한다. 이렇게 100열에 행하면 된다.
for i in range(N):
flag = 0
for val in q:
if val==1 and flag==0:
flag=1
if val==2 and flag==1:
result += 1
flag=0
from collections import deque
T = 10
for test_case in range(1, T + 1):
N = int(input())
pan = []
for i in range(N):
line = list(map(int, input().split()))
pan.append(line)
result = 0
for i in range(N):
q = deque()
for j in range(N):
if pan[j][i]!=0:
q.append(pan[j][i])
flag = 0
for val in q:
if val==1 and flag==0:
flag=1
if val==2 and flag==1:
result += 1
flag=0
print(f'#{test_case} {result}')
# 교착상태의 경우
# 한 라인에 N, S가 있을 때
# N이 위쪽, S가 아래쪽에 있을때