Computer Science/알고리즘 템플릿

BFS

hyunjin 2023. 12. 7. 23:07
목차
- 인접리스트
- 인접행렬

인접리스트

n,m,s=map(int,input().split()) #n-노드갯수, m-입력갯수, s-시작정점
adj_list=[[] for _ in range(n+1)]
for _ in range(m):
    a,b=map(int,input().split())
    adj_list[a].append(b)
    adj_list[b].append(a)

##########################################################
visited=[None]*(n+1)

def bfs(i):
    queue=[]
    visited[i]=True
    queue.append(i)
    while len(queue)!=0:
        v=queue.pop(0)
        print(v)
        for w in adj_list[v]:
            if not visited[w]:
                visited[w]=True
                queue.append(w)

print('[BFS 방문순서]')
bfs(s)

인접행렬

n,m,s=map(int,input().split()) #n-노드갯수, m-입력갯수, s-시작정점
adj_arr=[[0]*(n+1) for _ in range(n+1)]
for _ in range(m):
    a,b=map(int,input().split())
    adj_arr[a][b]=1
    adj_arr[b][a]=1

##########################################################
visited=[None]*(n+1)

def bfs(i):
    queue=[]
    visited[i]=True
    queue.append(i)
    while len(queue)!=0:
        v=queue.pop(0)
        print(v)
        for w in range(1,n+1):
            if adj_arr[v][w] and not visited[w]:
                visited[w]=True
                queue.append(w)

print('[BFS 방문순서]')
bfs(s)

'Computer Science > 알고리즘 템플릿' 카테고리의 다른 글

다익스트라 Dijkstra  (1) 2023.12.07
DFS  (0) 2023.12.07