[๋ฐฑ์ค€] 20040. ์‚ฌ์ดํด ๊ฒŒ์ž„/Python - Gold4

2025. 9. 10. 16:53ยทCoding Test/Algorithms

โ“๋ฌธ์ œ

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

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

๋ฉ”๋ชจ๋ฆฌ: 116208 KB, ์‹œ๊ฐ„: 292 ms

๋ถ„๋ฅ˜

์ž๋ฃŒ ๊ตฌ์กฐ, ๋ถ„๋ฆฌ ์ง‘ํ•ฉ

 

๋ฌธ์ œ ์„ค๋ช…

์‚ฌ์ดํด ๊ฒŒ์ž„์€ ๋‘ ๋ช…์˜ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ฐจ๋ก€๋Œ€๋กœ ๋Œ์•„๊ฐ€๋ฉฐ ์ง„ํ–‰ํ•˜๋Š” ๊ฒŒ์ž„์œผ๋กœ, ์„  ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํ™€์ˆ˜ ๋ฒˆ์งธ ์ฐจ๋ก€๋ฅผ, ํ›„ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ง์ˆ˜ ๋ฒˆ์งธ ์ฐจ๋ก€๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. ๊ฒŒ์ž„ ์‹œ์ž‘ ์‹œ 0 ๋ถ€ํ„ฐ n − 1 ๊นŒ์ง€ ๊ณ ์œ ํ•œ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ€์—ฌ๋œ ํ‰๋ฉด ์ƒ์˜ ์  n ๊ฐœ๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ, ์ด ์ค‘ ์–ด๋А ์„ธ ์ ๋„ ์ผ์ง์„  ์œ„์— ๋†“์ด์ง€ ์•Š๋Š”๋‹ค. ๋งค ์ฐจ๋ก€ ๋งˆ๋‹ค ํ”Œ๋ ˆ์ด์–ด๋Š” ๋‘ ์ ์„ ์„ ํƒํ•ด์„œ ์ด๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์„ ๋ถ„์„ ๊ธ‹๋Š”๋ฐ, ์ด์ „์— ๊ทธ๋ฆฐ ์„ ๋ถ„์„ ๋‹ค์‹œ ๊ทธ์„ ์ˆ˜๋Š” ์—†์ง€๋งŒ ์ด๋ฏธ ๊ทธ๋ฆฐ ๋‹ค๋ฅธ ์„ ๋ถ„๊ณผ ๊ต์ฐจํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ์‚ฌ์ดํด์„ ์™„์„ฑํ•˜๋Š” ์ˆœ๊ฐ„ ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋œ๋‹ค. ์‚ฌ์ดํด C๋Š” ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ทธ๋ฆฐ ์„ ๋ถ„๋“ค์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์œผ๋กœ, ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค.

C์— ์†ํ•œ ์ž„์˜์˜ ์„ ๋ถ„์˜ ํ•œ ๋์ ์—์„œ ์ถœ๋ฐœํ•˜์—ฌ ๋ชจ๋“  ์„ ๋ถ„์„ ํ•œ ๋ฒˆ์”ฉ๋งŒ ์ง€๋‚˜์„œ ์ถœ๋ฐœ์ ์œผ๋กœ ๋˜๋Œ์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๋ฌธ์ œ๋Š” ์„ ๋ถ„์„ ์—ฌ๋Ÿฌ ๊ฐœ ๊ทธ๋ฆฌ๋‹ค ๋ณด๋ฉด ์‚ฌ์ดํด์ด ์™„์„ฑ ๋˜์—ˆ๋Š”์ง€์˜ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๊ธฐ ์–ด๋ ค์›Œ ์ด๋ฏธ ์‚ฌ์ดํด์ด ์™„์„ฑ๋˜์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ฒŒ์ž„์„ ๊ณ„์† ์ง„ํ–‰ํ•˜๊ฒŒ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฒŒ์ž„์˜ ์ง„ํ–‰ ์ƒํ™ฉ์ด ์ฃผ์–ด์ง€๋ฉด ๋ช‡ ๋ฒˆ์งธ ์ฐจ๋ก€์—์„œ ์‚ฌ์ดํด์ด ์™„์„ฑ๋˜์—ˆ๋Š”์ง€, ํ˜น์€ ์•„์ง ๊ฒŒ์ž„์ด ์ง„ํ–‰ ์ค‘์ธ์ง€๋ฅผ ํŒ๋‹จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ ค ํ•œ๋‹ค.

์ž…๋ ฅ์œผ๋กœ ์ ์˜ ๊ฐœ์ˆ˜ n๊ณผ m ๋ฒˆ์งธ ์ฐจ๋ก€๊นŒ์ง€์˜ ๊ฒŒ์ž„ ์ง„ํ–‰ ์ƒํ™ฉ์ด ์ฃผ์–ด์ง€๋ฉด ์‚ฌ์ดํด์ด ์™„์„ฑ ๋˜์—ˆ๋Š”์ง€๋ฅผ ํŒ๋‹จํ•˜๊ณ , ์™„์„ฑ๋˜์—ˆ๋‹ค๋ฉด ๋ช‡ ๋ฒˆ์งธ ์ฐจ๋ก€์—์„œ ์ฒ˜์Œ์œผ๋กœ ์‚ฌ์ดํด์ด ์™„์„ฑ๋œ ๊ฒƒ์ธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

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

์ด ๋ฌธ์ œ๋Š” union-find๋ฅผ ์ด์šฉํ•˜์—ฌ ํ’€๋ฉด ๋œ๋‹ค.

 ๋งค ์ฐจ๋ก€๋งˆ๋‹ค ํ”Œ๋ ˆ์ด์–ด๋Š” ๋‘ ์ ์„ ์„ ํƒํ•œ๋‹ค. ์ด๋•Œ find๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‘ ์ ์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ํ™•์ธํ•œ๋‹ค. ๋‹ค๋ฅด๋‹ค๋ฉด ์ด ๋‘˜์€ ์—ฐ๊ฒฐ๋˜์–ด์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ union์„ ์ด์šฉํ•ด ์—ฐ๊ฒฐํ•˜๋ฉด ๋œ๋‹ค. ๋งŒ์•ฝ find๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‘ ์ง‘ํ•ฉ์˜ ์›์†Œ๊ฐ€ ๊ฐ™๋‹ค๋ฉด ํ•ด๋‹น ์›์†Œ๊ฐ€ ์„ ํƒํ•œ ๋‘ ์ ์ด ๋ชจ๋‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋กœ ์‚ฌ์ดํด์ด ํ˜•์„ฑ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ด ๋•Œ๋Š” ํ˜„์žฌ ์ฐจ๋ก€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  for๋ฌธ์„ ๋ฉˆ์ถ”๋ฉด ๋œ๋‹ค.

๋งŒ์•ฝ for๋ฌธ์ด ์‚ฌ์ดํด์„ ์ฐพ์ง€ ๋ชปํ•˜๊ณ  for๋ฌธ์ด ๋๋‚˜๋ฉด for-else๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ 0์„ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

๐Ÿ’ป์ฝ”๋“œ

import sys

input = sys.stdin.readline

n, m = map(int, input().split())
parent = [i for i in range(n)]

def find(x):
    if parent[x] != x:
        parent[x] = find(parent[x])

    return parent[x]

def union(a, b):
    a, b = find(a), find(b)

    if find(a) > find(b):
        parent[a] = b
    else:
        parent[b] = a

for i in range(1, m+1):
    a, b = map(int, input().split())
    if find(a) != find(b):
        union(a, b)
    else:
        print(i)
        break
else:
    print(0)

๐Ÿ“ํ›„๊ธฐ

union-find ๋ฌธ์ œ๊ฐ€ ์–ด๋А ์ •๋„ ์ต์ˆ™ํ•ด์ง„ ๊ฒƒ ๊ฐ™์œผ๋‹ˆ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ ๋ฌธ์ œ์—์„œ kruskal ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์‘์šฉํ•ด๋ด์•ผ๊ฒ ๋‹คโ˜บ๏ธ

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

[๋ฐฑ์ค€] 1956. ์šด๋™/Python - Gold4  (0) 2025.08.20
[๋ฐฑ์ค€] 1976. ์—ฌํ–‰ ๊ฐ€์ž/Python - Gold4  (0) 2025.08.18
[๋ฐฑ์ค€] 1717. ์ง‘ํ•ฉ์˜ ํ‘œํ˜„/Python - Gold5  (0) 2025.08.17
[๋ฐฑ์ค€] 1197. ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ/Python - Gold4  (1) 2025.08.16
[๋ฐฑ์ค€] 13549. ์ˆจ๋ฐ”๊ผญ์งˆ3/Python - Gold5  (0) 2025.08.15
'Coding Test/Algorithms' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 1956. ์šด๋™/Python - Gold4
  • [๋ฐฑ์ค€] 1976. ์—ฌํ–‰ ๊ฐ€์ž/Python - Gold4
  • [๋ฐฑ์ค€] 1717. ์ง‘ํ•ฉ์˜ ํ‘œํ˜„/Python - Gold5
  • [๋ฐฑ์ค€] 1197. ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ/Python - Gold4
The Engineer, Lucy
The Engineer, Lucy
  • The Engineer, Lucy
    Growing up for My Future๐Ÿ’•
    The Engineer, Lucy
    • Instagram
    • GitHub
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (178)
      • Linux (26)
      • Infra (9)
      • Cloud (25)
        • AWS (2)
        • GCP (3)
        • 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 (92)
        • Algorithms (84)
        • SQL (7)
      • ETC (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

  • ๋งํฌ

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

  • ํƒœ๊ทธ

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

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
The Engineer, Lucy
[๋ฐฑ์ค€] 20040. ์‚ฌ์ดํด ๊ฒŒ์ž„/Python - Gold4
์ƒ๋‹จ์œผ๋กœ

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