Computer Science/알고리즘 템플릿 3

다익스트라 Dijkstra

import sys INF = sys.maxsize # 노드의 개수, 간선 갯수, 시작 정점 n, m, s = map(int, input().split()) g = [None] * n # 각 노드에 연결되어 있는 노드에 대한 정보를 담는 리스트 visited = [False] * n D = [INF] * n # 최단 거리 테이블을 모두 무한으로 초기화 D[s] = 0 previous = [None] * n # 최단경로 기록을 위한 list previous[s] = s # 시작정점의 경로 초기화 # 모든 간선 정보를 입력받기 (0~n-1입력입니다. 1~n 입력이면 테이블들 n+1로 초기화했었어야함) for _ in range(m): a, b, c = map(int, input().split()) # a번 ..

BFS

목차 - 인접리스트 - 인접행렬 인접리스트 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_li..

DFS

목차 - 인접리스트 - 인접행렬 인접리스트 # 입력 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) # DFS 함수 정의 def dfs(v): adj_list[v].sort() #노드번호가 작은순부터 탐색할경우 # 현재 노드를 방문 처리 visited[v] = True print(v) # 현재 노드와 ..