[백준 1976번] 여행 가자

박형진·2022년 11월 25일
0

https://www.acmicpc.net/problem/1976


1. 코드

import sys
from collections import defaultdict, deque

n = int(sys.stdin.readline().rstrip())
m = int(sys.stdin.readline().rstrip())
graph = [list(map(int, sys.stdin.readline().rstrip().split())) for _ in range(n)]
visited = defaultdict(bool)
order = list(map(int, sys.stdin.readline().rstrip().split()))
for i in range(len(order)):
    order[i] -= 1


q = deque()
q.append(order[0])
visited[order[0]] = True
while q:
    node = q.popleft()
    for i in range(n):
        if node == i:
            continue
        if not visited[i] and graph[node][i] == 1:
            visited[i] = True
            q.append(i)

flag = True
for i in order:
    if not visited[i]:
        flag = False
        print('NO')
        break
if flag:
    print('YES')

2. 후기

여행 계획에 해당하는 노드를 방문할 수 있는지를 BFS를 통해 확인했다.

profile
안녕하세요!

0개의 댓글