이번 문제는 BFS를 통해 해결하였다. 곰곰이가 있는 정점을 미리 방문처리 해두고, 방문처리되지 않은 정점을 BFS를 통해 탐색하도록 하였고, 만약 더 이상 갈 곳이 없는, 즉 연결된 정점이 없는 정점까지 도달했다면, 곰곰이가 있는 곳을 지나치지 않고 끝까지 간 것이므로 'yes'를 반환하도록 하였고, while문이 끝날 때까지 반환되지 않았다면 'Yes'를 반환하도록 하였다.
from collections import deque
n, m = map(int, input().split())
graph = [[] for _ in range(n+1)]
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
s = int(input())
gg = list(map(int, input().split()))
visited = [False for _ in range(n+1)]
def bfs():
q = deque()
q.append(1)
if visited[1]:
return 'Yes'
visited[1] = True
while q:
node = q.popleft()
if not graph[node]:
return 'yes'
for nxt in graph[node]:
if not visited[nxt]:
visited[nxt] = True
q.append(nxt)
return 'Yes'
for g in gg:
visited[g] = True
print(bfs())