황소개발자

백준 1260 파이썬 python : DFS와 BFS @@황소처럼 우직하게@@ 깔끔 숏코딩 본문

백준 문제 풀이

백준 1260 파이썬 python : DFS와 BFS @@황소처럼 우직하게@@ 깔끔 숏코딩

hjp845 2020. 3. 2. 18:23
반응형
import sys
input = sys.stdin.readline

n, m, v = map(int, input().split())

adj_lst = [[] for i in range(n + 1)]
visited = [False for i in range(n + 1)]

for i in range(m):
    a, b = map(int, input().split())
    adj_lst[a].append(b)
    adj_lst[b].append(a)
for i in range(n):
    adj_lst[i].sort()

def dfs(v, lst):
    lst += [v]
    for nxt in adj_lst[v]:
        if nxt not in lst:
            dfs(nxt, lst)
    return lst

def bfs(v):
    lst = []
    q = [v]
    visited[v] = True
    while q:
        now = q.pop(0)
        lst += [now]
        for nxt in adj_lst[now]:
            if not visited[nxt]:
                q.append(nxt)
                visited[nxt] = True
    return lst

print(*dfs(v, []))
print(*bfs(v))

진화했습니다.

반응형
Comments