[파이썬] 백준 4386 : 별자리 만들기 (골드3)
풀이
방향성 생각
MST
코드
N = int(input())
arr = [list(map(float,input().split())) for _ in range(N)]
G = []
for i in range(N-1):
ax,ay = arr[i]
for j in range(i+1,N):
bx,by = arr[j]
dist = ((ax-bx)**2+(ay-by)**2)**0.5
G.append((dist,i,j))
G.sort()
P = [i for i in range(N)]
def find(x):
if x != P[x]:
P[x] = find(P[x])
return P[x]
answer = 0
for cost,x,y in G:
px = find(x)
py = find(y)
if px != py:
answer += cost
P[max(px,py)] = min(px,py)
print(f"{answer:.2f}")
코멘트
*
'Algorithm > Graph' 카테고리의 다른 글
| [파이썬] 백준 14461 : 소가 길을 건너간 이유 7 (골드2) (0) | 2025.05.15 |
|---|---|
| [파이썬] 백준 14923 : 미로 탈출 (골드3) (0) | 2025.05.13 |
| [파이썬] 백준 25195 : Yes or yes (골드4) (0) | 2025.05.12 |
| [파이썬] 백준 9466 : 팀 프로젝트 (골드3) (0) | 2025.05.11 |
| [파이썬] 백준 27211 : 도넛 행성 (골드5) (0) | 2025.04.24 |
| [파이썬] 백준 1175 : 배달 (골드1) (0) | 2025.04.24 |
| [파이썬] 백준 11281 : 2-SAT - 4 (플레3) (1) | 2025.04.16 |
댓글