[๋ฐฑ์ค€] 1976. ์—ฌํ–‰ ๊ฐ€์ž/Python - Gold4

2025. 8. 18. 15:52ยทCoding Test/Algorithms

โ“๋ฌธ์ œ

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

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

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

๋ถ„๋ฅ˜

๊ทธ๋ž˜ํ”„ ์ด๋ก , ์ž๋ฃŒ ๊ตฌ์กฐ, ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰, ๋ถ„๋ฆฌ ์ง‘ํ•ฉ

 

๋ฌธ์ œ ์„ค๋ช…

๋™ํ˜์ด๋Š” ์นœ๊ตฌ๋“ค๊ณผ ํ•จ๊ป˜ ์—ฌํ–‰์„ ๊ฐ€๋ ค๊ณ  ํ•œ๋‹ค. ํ•œ๊ตญ์—๋Š” ๋„์‹œ๊ฐ€ N๊ฐœ ์žˆ๊ณ  ์ž„์˜์˜ ๋‘ ๋„์‹œ ์‚ฌ์ด์— ๊ธธ์ด ์žˆ์„ ์ˆ˜๋„, ์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค. ๋™ํ˜์ด์˜ ์—ฌํ–‰ ์ผ์ •์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ์—ฌํ–‰ ๊ฒฝ๋กœ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ธ์ง€ ์•Œ์•„๋ณด์ž. ๋ฌผ๋ก  ์ค‘๊ฐ„์— ๋‹ค๋ฅธ ๋„์‹œ๋ฅผ ๊ฒฝ์œ ํ•ด์„œ ์—ฌํ–‰์„ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋„์‹œ๊ฐ€ 5๊ฐœ ์žˆ๊ณ , A-B, B-C, A-D, B-D, E-A์˜ ๊ธธ์ด ์žˆ๊ณ , ๋™ํ˜์ด์˜ ์—ฌํ–‰ ๊ณ„ํš์ด E C B C D ๋ผ๋ฉด E-A-B-C-B-C-B-D๋ผ๋Š” ์—ฌํ–‰๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

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

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

์ฒซ ๋ฒˆ์งธ ์ค„์— ๋„์‹œ ์ˆ˜์™€ ๋‘ ๋ฒˆ์งธ ์ค„์— ์—ฌํ–‰ ๊ณ„ํš์— ์†ํ•œ ๋„์‹œ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„ ํ›„ N๊ฐœ์˜ ์ค„์— N ๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์—ฌ๊ธฐ์„œ iํ–‰ j์—ด์€ i ๋ฒˆ ๋„์‹œ์™€ j ๋ฒˆ ๋„์‹œ์˜ ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ž…๋ ฅ์„ ๋ฐ›์•„์„œ ๋ฐ”๋กœ union์„ ๋งŒ๋“ค์–ด ์ง‘ํ•ฉ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.

๊ทธ ๋‹ค์Œ ์—ฌํ–‰ ๊ณ„ํš์„ ๋ฐ›์•„์„œ ํ˜„์žฌ ๋„์‹œ์™€ ๋‹ค์Œ ๋„์‹œ๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฐ๊ฒฐ๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด "NO"๋ฅผ ์ถœ๋ ฅํ•œ ํ›„ ๋ฉˆ์ถ”๊ณ  for๋ฌธ์„ ์ค‘๊ฐ„์— ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋๋ƒˆ๋‹ค๋ฉด else์— ์˜ํ•ด์„œ "YES"๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ’ป์ฝ”๋“œ

import sys

input = sys.stdin.readline

N = int(input()) # ๋„์‹œ ์ˆ˜
M = int(input()) # ์—ฌํ–‰ ๊ณ„ํš์— ์†ํ•œ ๋„์‹œ ์ˆ˜
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 a > b:
        parent[a] = b
    else:
        parent[b] = a

for i in range(N):
    status = list(map(int, input().split()))
    for j in range(N):
        if status[j]:
            union(i, j)

plan = list(map(int, input().split())) # ์—ฌํ–‰ ๊ณ„ํš

for i in range(M-1):
    if parent[plan[i]-1] != parent[plan[i+1]-1]:
        print("NO")
        break
else:
    print("YES")

๐Ÿ“ํ›„๊ธฐ

์ฒ˜์Œ์— ์ž…๋ ฅ ๋ฐฉ์‹์„ ๋ณด๊ณ  ๋ฐ”๋กœ ์ดํ•ด๋˜์ง€ ์•Š์•„์„œ ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค... ๊ทธ๋ฆฌ๊ณ  ์ฝ”๋“œ ์ˆœ์„œ ๋ฐ”๊พธ๋ฉด์„œ ๋ช‡ ๊ฐœ ๋น ๋œจ๋ฆฌ๊ณ  ๋ฐ”๊ฟจ๋”๋‹ˆ ์—๋Ÿฌ๋„ ๋‚ฌ๋‹ค...ใ…Žใ…Ž

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

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

[๋ฐฑ์ค€] 20040. ์‚ฌ์ดํด ๊ฒŒ์ž„/Python - Gold4  (0) 2025.09.10
[๋ฐฑ์ค€] 1956. ์šด๋™/Python - Gold4  (0) 2025.08.20
[๋ฐฑ์ค€] 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' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 20040. ์‚ฌ์ดํด ๊ฒŒ์ž„/Python - Gold4
  • [๋ฐฑ์ค€] 1956. ์šด๋™/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) N
      • 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) N
        • Algorithms (84) N
        • SQL (7)
      • ETC (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

  • ๋งํฌ

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

  • ํƒœ๊ทธ

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

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
The Engineer, Lucy
[๋ฐฑ์ค€] 1976. ์—ฌํ–‰ ๊ฐ€์ž/Python - Gold4
์ƒ๋‹จ์œผ๋กœ

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