[ BOJ / Python ] 25195번 Yes or yes

황승환·2022년 8월 5일
0

Python

목록 보기
420/498
post-thumbnail


이번 문제는 BFS를 통해 해결하였다. 곰곰이가 있는 정점을 미리 방문처리 해두고, 방문처리되지 않은 정점을 BFS를 통해 탐색하도록 하였고, 만약 더 이상 갈 곳이 없는, 즉 연결된 정점이 없는 정점까지 도달했다면, 곰곰이가 있는 곳을 지나치지 않고 끝까지 간 것이므로 'yes'를 반환하도록 하였고, while문이 끝날 때까지 반환되지 않았다면 'Yes'를 반환하도록 하였다.

Code

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())

업로드중..

profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글