โ๋ฌธ์
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 |