일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 카카오 코테
- 프로그래머스 #sql #mysql #코딩테스트
- 프로그래머스 #c++ #코딩테스트
- 동
- 프로그래머스 #네트워크 #c++ #코딩테스트 #코테 #코테준비 #dfs
- 백준 #백준2217 #백준로프 #python
- 카카오 #프로그래머스 #python #코딩테스트 #오픈채팅방
- 프로그래머스 #NULL 처리하기
- 프로그래머스 #python #코딩테스트 #코테공부 #알고리즘 #dict
- 그리디알고리즘 #그리디 #백준 #우선순위큐 #최소힙 #최대힙 #알고리즘 #코딩테스트 #python
- 프로그래머스 #python #2021카카오 #카카오코테 #카카오인턴쉽
- 백준 #백준알고리즘 #알고리즘 #코딩테스트 #코딩테스트준비 #코테준비 #백준2110 #python #문제풀이
- 백준 #이거다시풀기
- Today
- Total
목록알고리즘 (2)
say repository
최소 신장 트리 (MST)을 구할 경우1. 크루스칼 알고리즘 (union find 활용)2. 프림 알고리즘 프림 알고리즘1. 우선순위 큐 ( heapq ) 활용2. 우선순위 큐에 (가중치, 시작점) push3. 간선-1 만큼 우선순위큐 popimport heapq# MST (최소 신장 트리 )# 1. 크루스칼 알고리즘 ( UNION FIND 알고리즘)# 2. 프림 알고리즘# 프림 알고리즘def prim(start): visited = [False]*(n+1) # 방문처리 sum_w = 0 # 우선순위큐 (가중치, 시작점) heap = [] heapq.heappush(heap,(0,start)) cnt = 0 while heapq and cnt
유니온 파인드란?유니온 파인드는 그래프 알고리즘으로 두 노드가 같은 그래프에 속하는지 판별하는 알고리즘Union 연산 : 노드를 합친다. (루트 노드가 더 작은 노드로)Find 연산 : 노드의 루트노드 찾는다.Union - Find 과정1. parent [] 루트 노드를 가리키는 리스트 만들어 각 노드가 자신을 가리키도록 초기화2. union(1,2) 연산 -> 1과 2의 루트 노드를 찾는다.합칠 때는 루트 노드가 더 작은 쪽으로 합치며 노드 1이 루트 노드가 더 작기 때문에 parent 리스트에서 2의 루트 노드를 노드 1의 루트노드 1로 바꿔준다.# union find 알고리즘# find 연산 : 루트 노드 찾기def find(x): if parent[x] != x: parent[x..