백준 11403번 경로 찾기

Solution

import sys
from collections import deque

input = sys.stdin.readline

n = int(input())

graph = [list(map(int, input().split())) for _ in range(n)]


def bfs(x):
    visit = [0] * n
    queue = deque([x])
    # 인접 리스트가 아닌 인접 행렬이기 때문에 visit[x] = 1와 같이 바로 방문 체크를 해주면 안 된다.

    while queue:
        v = queue.popleft()
        for i in range(n):
            if graph[v][i] == 1 and not visit[i]:
                queue.append(i)
                visit[i] = 1
    for i in range(n):
        print(visit[i], end=' ')
    print()


for i in range(n):
    bfs(i)