bfs

from collections import deque

def bfs(graph,start,visited):

    # 미리 visited λ§Œλ“¦
    bfs_visited = []

    # μˆ˜ν–‰, λ°©λ¬Έν‘œμ‹œ
    print(start, end=' ')
    visited.append(start)
    # μ‹œμž‘μ μ˜ μΈμ ‘λ…Έλ“œ 큐에 μ‚½μž…
    q = dequq()
    # μΈμ ‘λ…Έλ“œκ°€ 볡수라면, extend 둜 μΈμ ‘λ…Έλ“œλ“€μ„ q에 μΆ”κ°€ν•˜λŠ”κ²Œ λ‚˜μŒ
    q.extend(graph[start])

    while queue:
        # νμ—μ„œ 꺼냄
        v = queue.popleft()
        # κΊΌλƒˆλŠ”λ° λ°©λ¬Έ μ•ˆ λ˜μ–΄ 있으면
        if v not in visited:
            # μˆ˜ν–‰
            print(v, end=' ')
            # λ°©λ¬Έν‘œμ‹œ
            visited.append(v)
            # 큐에 μΈμ ‘λ…Έλ“œ μΆ”κ°€
            q.extend(graph[v])

graph = [
    [],
    [2,3,8],
    [1,7],
    [1,4,5],
    [3,5],
    [3,4],
    [7],
    [2,6,8],
    [1,7]
]

bfs(graph,1)

Last updated