[๋ฐฑ์ค€] 1197. ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ/Python - Gold4

2025. 8. 16. 14:01ยทCoding Test/Algorithms

โ“๋ฌธ์ œ

https://www.acmicpc.net/problem/1197

์„ฑ๋Šฅ ์š”์•ฝ

Kruskal, Python3โžก๏ธ๋ฉ”๋ชจ๋ฆฌ: 57288 KB, ์‹œ๊ฐ„: 264 ms
Prim, PyPy3โžก๏ธ๋ฉ”๋ชจ๋ฆฌ: 129144 KB, ์‹œ๊ฐ„: 380 ms

๋ถ„๋ฅ˜

์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ, ๊ทธ๋ž˜ํ”„ ์ด๋ก 

๋ฌธ์ œ ์„ค๋ช…

๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ทธ ๊ทธ๋ž˜ํ”„์˜ ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ๋Š”, ์ฃผ์–ด์ง„ ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ์ •์ ๋“ค์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ถ€๋ถ„ ๊ทธ๋ž˜ํ”„ ์ค‘์—์„œ ๊ทธ ๊ฐ€์ค‘์น˜์˜ ํ•ฉ์ด ์ตœ์†Œ์ธ ํŠธ๋ฆฌ๋ฅผ ๋งํ•œ๋‹ค.

โœ๐Ÿปํ’€์ด

2024.11.29 - [Computer Science/Algorithms] - [Algorithms] ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ (Minimum Spanning Tree)

 

[Algorithms] ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ (Minimum Spanning Tree)

https://www.geeksforgeeks.org/what-is-minimum-spanning-tree-mst/ What is Minimum Spanning Tree (MST) - GeeksforGeeksA Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, qu

lucy-devblog.tistory.com

์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๋Š” ์œ„ ๋‚ด์šฉ๊ณผ ๊ฐ™์ด ํฌ๋ฃจ์Šค์ปฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํฌ๋ฃจ์Šค์ปฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ Union-Find๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•„๋ž˜ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

https://daegwonkim.tistory.com/191

 

[Python] BOJ / 1197๋ฒˆ / ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ

1197๋ฒˆ: ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ V(1 ≤ V ≤ 10,000)์™€ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ E(1 ≤ E ≤ 100,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ E๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ๊ฐ„์„ ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์„ธ ์ •์ˆ˜ A, B, C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด

daegwonkim.tistory.com

๐Ÿ’ป์ฝ”๋“œ

Kruskal's Algorithms

import sys

input = sys.stdin.readline

V, E = map(int, input().split())
edges = [list(map(int, input().split())) for _ in range(E)]
parent = [v for v in range(V+1)]
edges.sort(key= lambda x: x[2])
cost = 0

def find(x): # ํŠน์ • ์›์†Œ๊ฐ€ ์–ด๋А ๊ทธ๋ฃน์— ์†ํ•˜๋Š”์ง€ ์ฐพ๊ธฐ.
    if parent[x] != x:
        return find(parent[x])
    return x

def union(a, b): # ๋‘ ๊ทธ๋ฃน์„ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๊ธฐ.
    pA, pB = find(a), find(b)
    if pA > pB:
        parent[pA] = pB
    else:
        parent[pB] = pA

for a, b, c in edges:
    if find(a) != find(b):
        union(a, b)
        cost += c
        
print(cost)

Prim's Algorithms

import sys
from heapq import heappop, heappush

input = sys.stdin.readline
INF = 1e9

n, m = map(int, input().split())
edges = [[] for _ in range(n)]
visited = [0] * n

for _ in range(m):
    a, b, c = map(int, input().split())
    edges[a - 1].append((c, b - 1))
    edges[b - 1].append((c, a - 1))

ans = 0
q = [(0, 0)]

while q:
    c, v = heappop(q)

    if not visited[v]:
        visited[v] = 1
        ans += c

        for c, u in edges[v]:
            if not visited[u]:
                heappush(q, (c, u))

print(ans)

๐Ÿ“ํ›„๊ธฐ

์ฒ˜์Œ์—๋Š” ํฌ๋ฃจ์Šค์ปฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด์„œ ํ’€์—ˆ๋Š”๋ฐ PyPy3๋Š” recursion limit๋ฅผ 10^6์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ดˆ๊ณผํ•˜์—ฌ Python3๋กœ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ผ์„ฑ์€ PyPy3๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋‹ค์‹œ ํ•ด๋ณด์•˜๋”๋‹ˆ ํ”„๋ฆผ์€ PyPy3์—์„œ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Coding Test > Algorithms' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 1976. ์—ฌํ–‰ ๊ฐ€์ž/Python - Gold4  (0) 2025.08.18
[๋ฐฑ์ค€] 1717. ์ง‘ํ•ฉ์˜ ํ‘œํ˜„/Python - Gold5  (0) 2025.08.17
[๋ฐฑ์ค€] 13549. ์ˆจ๋ฐ”๊ผญ์งˆ3/Python - Gold5  (0) 2025.08.15
[๋ฐฑ์ค€] 11657. ํƒ€์ž„๋จธ์‹ /Python - Gold4  (1) 2025.08.14
[๋ฐฑ์ค€] 1504. ํŠน์ •ํ•œ ์ตœ๋‹จ ๊ฒฝ๋กœ/Python - Gold4  (0) 2025.08.12
'Coding Test/Algorithms' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 1976. ์—ฌํ–‰ ๊ฐ€์ž/Python - Gold4
  • [๋ฐฑ์ค€] 1717. ์ง‘ํ•ฉ์˜ ํ‘œํ˜„/Python - Gold5
  • [๋ฐฑ์ค€] 13549. ์ˆจ๋ฐ”๊ผญ์งˆ3/Python - Gold5
  • [๋ฐฑ์ค€] 11657. ํƒ€์ž„๋จธ์‹ /Python - Gold4
The Engineer, Lucy
The Engineer, Lucy
  • The Engineer, Lucy
    Growing up for My Future๐Ÿ’•
    The Engineer, Lucy
    • Instagram
    • GitHub
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (183)
      • Linux (26)
      • Infra (9)
      • Cloud (26)
        • AWS (2)
        • GCP (4)
        • Docker (4)
        • Kubernetes (14)
        • IaC (2)
      • NGINX (1)
      • DevOps (3)
      • Computer Science (17)
        • Data Structure (0)
        • Algorithms (1)
        • Operating System (3)
        • Network (11)
        • Database System (2)
      • Coding Test (95)
        • Algorithms (87)
        • SQL (7)
      • ETC (6)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๊ณต์ง€์‚ฌํ•ญ

  • ๋งํฌ

    • Lucy's Instagram
    • Lucy's GitHub
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์‰˜ ์Šคํฌ๋ฆฝํŠธ
    ์ž๋ฐ”
    cs ๊ธฐ์ดˆ ์ง€์‹ ์ •๋ฆฌ
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณต๋ถ€
    K8s
    ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค
    ๋ฆฌ๋ˆ…์Šค
    Linux
    ๋„์ปค
    ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ ์ง€์‹
    ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰
    network
    ๋„คํŠธ์›Œํฌ
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 2๊ธ‰
    Kubernetes
    terraform
    Baekjoon
    ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    ๋ฐฑ์ค€
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ์…ธ ์Šคํฌ๋ฆฝํŠธ
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    dfs
    programmers
    bfs
    Shell
    Shell Script
    ์˜ค๋ธ”์™„
    docker
    Java
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
The Engineer, Lucy
[๋ฐฑ์ค€] 1197. ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ/Python - Gold4
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”