본문 바로가기
  • KEEP HUSTLE!

최소 스패닝 트리5

[백준 17472] 다리 만들기 2 - Python(파이썬) import sys # 섬 크기 탐색 함수, 그 섬의 인덱스와 해당 좌표를 같이 저장 def search_land(x, y, cnt): for k in range(4): n_x, n_y = x + dx[k], y + dy[k] if 0 2021. 3. 21.
[백준 2887] 행성 터널 - Python(파이썬) 우선순위 큐인 heap 사용! from heapq import heappop, heappush import sys def find(x): if home[x] < 0: return x home[x] = find(home[x]) return home[x] def union(a, b): a, b = find(a), find(b) # 빠른 탐색을 위해, 최솟값에 저장 if a != b: if home[a] < home[b]: home[a] += home[b] home[b] = a else: home[b] += home[a] home[a] = b N = int(sys.stdin.readline().strip()) arr = [list(map(int, sys.stdin.readline().split())) + [i.. 2021. 3. 21.
[백준 1774] 우주신과의 교감 - Python(파이썬) 우선순위 큐인 heap 사용! from heapq import heappop, heappush import sys def find(x): if home[x] < 0: return x home[x] = find(home[x]) return home[x] def union(a, b): a, b = find(a), find(b) home[b] = a N, M = map(int, sys.stdin.readline().split()) home = [-1] * (N + 1) arr = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] my_heap = [] answer, cnt = 0, 0 for i in range(N): for j in range.. 2021. 3. 21.
[백준 4386] 별자리 만들기 - Python(파이썬) 우선순위 큐인 heapq 사용! from heapq import heappop, heappush import sys def find(x): if home[x] < 0: return x home[x] = find(home[x]) return home[x] def union(a, b): home[b] = a n = int(sys.stdin.readline().strip()) arr = [list(map(float, sys.stdin.readline().split())) for _ in range(n)] home = [-1] * (n + 1) my_heap = [] answer = 0 cnt = 0 for i in range(n): for j in range(i+1, n): w, a, b = round(pow.. 2021. 3. 21.
[백준 1197] 최소 스패닝 트리 - Python(파이썬) import sys def find(x): if home[x] < 0: return x home[x] = find(home[x]) return home[x] V, E = map(int, sys.stdin.readline().split()) home = [-1] * (V + 1) arr = [] answer, cnt = 0, 0 for _ in range(E): a, b, c = map(int, sys.stdin.readline().split()) arr.append([c, a, b]) # 가중치로 오름차순 정렬 arr.sort(key=lambda x: x[0]) for i in range(E): weight, a, b = arr[i] # 연결이 되었는 지 확인 f_a, f_b = find(a), find.. 2021. 3. 21.