본문 바로가기
CT

[Python] 백준 1260번 : DFS와 BFS

by shur_ 2024. 7. 24.

 

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

 


 

 

 

from collections import deque
import sys

N, M, V = map(int, sys.stdin.readline().split())
graph = [[] for _ in range(N+1)]
visited1 = [False] * (N+1)
visited2 = [False] * (N+1)

for i in range(M):
    tmp1, tmp2 = map(int, sys.stdin.readline().split())
    graph[tmp1].append(tmp2)
    graph[tmp2].append(tmp1)
    
for i in graph:
    i.sort()

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


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

dfs(graph, visited1, V)
print("")
bfs(graph, visited2, V)

 

 

  • 파이썬 컴프리헨션
  • dfs, bfs 구현

댓글