처음에는 n극과 s극으로 이동하는 로직을 구현 후, BFS를 이용해 주변을 돌면서 1 옆에 2가 있으면, 2 옆에 1이 있으면 cnt
에 1을 더해주었다.
그런데, 댓글에 누가 로직을 구현하지 않아도 풀 수 있다고 해서 의문이 들었는데 그렇게 푸는 방법이 있었다.
열마다 행을 체크해 1이 있는데 2가 있다면 cnt += 1
을 해주었다.
import sys
sys.stdin = open("input.txt", "r")
for i in range(1, 11):
n = int(input())
arr = [list(input().split()) for _ in range(n)]
cnt = 0
for j in range(n):
r = 0
stack = []
while r < n:
if not stack and arr[r][j] == '1':
stack.append('1')
elif stack and arr[r][j] == '2':
cnt += int(stack.pop())
r += 1
print("#{} {}".format(i, cnt))