본문 바로가기

[BOJ] - Python

[백준] 1260 : DFS와 BFS python

 

제목 그대로 DFS와 BFS를 수행한 결과를 출력하면 되는 문제인데,

인접정점이 오름차순으로 입력되지 않기 때문에 입력을 받은 후에 정렬을 한 번 해줘야 한다.

 

 

from collections import deque

n,m,v = map(int,input().split())
graph = [[]for i in range(n+1)]
visited = [False]*(n+1)

for i in range(m):
    s,e = map(int,input().split())
    graph[s].append(e)
    graph[e].append(s)

for i in range(n+1):
    graph[i].sort()

def dfs(graph, v, visited):
    visited[v] = True
    print(v,end=' ')
    for i in graph[v]:
        if not visited[i]:
            dfs(graph,i,visited)

def bfs(graph, start, visited):
    queue = deque()
    queue.append(start)
    visited[start] = True
    while queue:
        v = queue.popleft()
        print(v, end=' ')
        for i in graph[v]:
            if not visited[i]:
                queue.append(i)
                visited[i] = True

dfs(graph, v, visited)
visited = [False]*(n+1)
print()
bfs(graph,v,visited)

'[BOJ] - Python' 카테고리의 다른 글

[백준] 2606 : 바이러스 python  (0) 2023.08.17
[백준] 2178 : 미로 탐색 python  (0) 2023.08.17
[백준] 2798 : 블랙잭 python  (0) 2023.08.17
[백준] 11286 : 절댓값 힙 python  (0) 2023.08.17
[백준] 13305 : 주유소 python  (0) 2023.08.13