BOJ1260 dfs와 bfs

randi65535·2020년 11월 3일
0

dfs(너비 우선 탐색), bfs(깊이 우선 탐색)에 대한 기본적인 문제

from collections import deque

# 스택 이용
def dfs(v):
    print(v, end=" ")
    visited[v] = True
    for e in adj[v]:
        if not(visited[e]):
            dfs(e)

# 큐 이용
def bfs(v):
    visited = [False] * (N+1)

    q = deque()
    q.append(v)
    visited[v] = True

    while q: # if q not empty
        v = q.popleft()
        print(v, end=" ")
        for e in adj[v]:
            if not (visited[e]):
                visited[e] = True
                q.append(e)


# N = 정점의 개수, M = 간선의 개수, V = 시작할 정점번호
N, M, START = map(int, input().strip().split())
adj = [[] for _ in range(N+1)]
visited = [False] * (N+1)

for _ in range(M):
    u, v = map(int, input().strip().split())
    adj[u].append(v)
    adj[v].append(u)

for e in adj:
    e.sort()


dfs(START)
print()
bfs(START)
profile
unsinged int 8byte-1

0개의 댓글

관련 채용 정보