본문 바로가기

알고리즘 문제/알고리즘 노트5

플로이드워셜 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 # 플로이드워셜 INF = int(1e9) n,m = map(int,input().split()) graph = [[INF]*(n+1) for _ in range(n+1)] for i in range(m): a,b,c = map(int,input().split()) if graph[a][b] > c: graph[a][b] = c for k in range(1,n+1): for i in range(1,n+1): for j in range(1,n+1): graph[i][j] = min(graph[i][j],graph[i][k]+graph[k][j]) result= INF for i in.. 2020. 10. 27.
다익스트라 알고리즘 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 # 다익스트라 알고리즘 최단경로 import heapq import sys input = sys.stdin.readline INF = int(1e9) v,e = map(int,input().split()) start = int(input()) graph = [[] for _ in range(v+1)] distance = [INF] * 20001 for i in range(e): a,b,c = map(int,input().split()) graph[a].append((b,c)) def dijkstra(start): q= [] heapq.hea.. 2020. 10. 27.
DFS/BFS 1 2 3 4 5 6 7 8 9 10 11 # DFS 메서드 정의 def dfs(graph, v, visited): # 현재 노드를 방문 처리 visited[v] = True print(v, end=" ") # 현재 노드와 연결된 다른 노드를 재귀적으로 방문 for i in graph[v]: if not visited[i]: dfs(graph,i,visited) cs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #BFS 예제 from collections import deque # BFS 메서드 정의 def bfs(graph, start, visited): # 큐(Queue) 구현을 위해 deque 라이브러리 사용 queue = deque([sta.. 2020. 10. 26.
정렬 1 2 3 4 5 6 7 8 9 10 11 import sys n = int(sys.stdin.readline()) a =[0] * 10001 for i in range(n): num = int(sys.stdin.readline()) a[num] = a[num] + 1 for i in range(10001): if a[i] != 0: for j in range(a[i]): print(i) cs 2020. 10. 26.
유클리드 호제법(최대 공약수) 1 2 3 4 5 6 7 def gcd(a, b): if a 2020. 10. 25.