Notice
Recent Posts
Recent Comments
Link
| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ํ์ด์ฌ
- sklearn
- ์ธ๋๋ณ๊ฐ๋น์ง์ปฌ๋ ํฐ
- ์๊ณ ๋ฆฌ์ฆ
- CREATETABLE
- ํค ์ข ๋ฅ
- Python
- ๋ฌธ์์ด
- ํด๋ฆฐ์ฝ๋
- ๋ฐฑ์ค
- ๋ฌด๊ฒฐ์ฑ
- DROPTABLE
- SQL
- TDD
- ๋ฌด๊ฒฐ์ฑ์ ์ง๋ฉ์ปค๋์ฆ
- ์ฃผ์ฑ๋ถ ์ฐพ๊ธฐ
- ๋ฌด๊ฒฐ์ฑ์ ์ง
- knn_classify
- RENAMETABLE
- latent factor
- ์ปจํ ์ด๋๊ฐ์ฒด
- Hyperlink Graphs
- SQLDDL
- ์ ์ฌ์์๋ชจ๋ธ
- ALTERTABLE
- ๋ถ๊ฝ๋ฐ์ดํฐ์
- ์ฌ์ดํท๋ฐ
- ํ
- Key ์ข ๋ฅ
- latent factor model
Archives
- Today
- Total
DonHurry
[Python] ๋ฐฑ์ค 4386๋ฒ - ๋ณ์๋ฆฌ ๋ง๋ค๊ธฐ ๋ณธ๋ฌธ
๐ ๋ฌธ์
4386๋ฒ: ๋ณ์๋ฆฌ ๋ง๋ค๊ธฐ
๋ํ์ด๋ ์ฐ์ฃผ์ ์ ์ด๋ค. ์ด์ ๋ํ์ด๋ ์๋ฌด๋ ๊ฒ๋ ๋๋ธ๋ฌ์ ธ ์๋ n๊ฐ์ ๋ณ๋ค์ ์ด์ด์ ๋ณ์๋ฆฌ๋ฅผ ํ๋ ๋ง๋ค ๊ฒ์ด๋ค. ๋ณ์๋ฆฌ์ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค. ๋ณ์๋ฆฌ๋ฅผ ์ด๋ฃจ๋ ์ ์ ์๋ก ๋ค๋ฅธ ๋ ๋ณ์ ์ผ
www.acmicpc.net
๐ ํ์ด
์ ๋์จ ํ์ธ๋๋ฅผ ํ์ฉํ๋ ์ต์ ์ ์ฅ ํธ๋ฆฌ ๋ฌธ์ ์ ๋๋ค. ๋ฐฑ์ค 1197๋ฒ ์ต์ ์คํจ๋ ํธ๋ฆฌ์ ๋น์ทํฉ๋๋ค. ํด๋น ๋ฌธ์ ๋ ๋ ธ๋ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ ์ ์ผ๋ก ์ฃผ์ด์ง๋ค๋ ์ ์ด ๋ค๋ฆ ๋๋ค. ๋ณ๋ค์ 2์ฐจ์ ์ขํ๊ฐ ์ฃผ์ด์ง๊ธฐ ๋๋ฌธ์, ๋ณ๋ค ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ์ฐ์ ์ ์ผ๋ก ๊ตฌํ๋ฉด ๋ฉ๋๋ค. ์๋ ์ฝ๋์์๋ ๊ฐ์ฅ ๊ฐ๋จํ ์ ํด๋ฆฌ๋์ ๊ฑฐ๋ฆฌ๋ฅผ ์ด์ฉํ์ต๋๋ค.
๐ป ์ฝ๋
import sys
input = sys.stdin.readline
# root๋ฅผ ์ฐพ๋ ํจ์
def find_parents(x):
if parents[x] == x:
return x
return find_parents(parents[x])
# root๋ฅผ ํตํฉํ๋ ํจ์
def union_parents(a, b):
a = find_parents(a)
b = find_parents(b)
if a < b:
parents[b] = a
else:
parents[a] = b
# ๋ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ ํจ์
def cal_dist(x1, y1, x2, y2):
return ((x1 - x2) ** 2 + (y1 - y2) ** 2) ** 0.5
n = int(input())
parents = [int(x) for x in range(n)]
dist = []
stars = []
for _ in range(n):
x, y = map(float, input().split())
stars.append((x, y))
for i in range(n):
for j in range(i+1, n):
# ๋ ๋ณ ์ฌ์ด์ ๊ฑฐ๋ฆฌ ๊ณ์ฐ
k = cal_dist(stars[i][0], stars[i][1], stars[j][0], stars[j][1])
# ๊ฑฐ๋ฆฌ, ์ถ๋ฐ ๋ณ, ๋์ฐฉ ๋ณ
dist.append((k, i, j))
# ์ต์ ๊ฑฐ๋ฆฌ ์์ผ๋ก ๋์ด
dist.sort()
ans = 0
for k, i, j in dist:
# ๋ ๋ณ์ root๊ฐ ๊ฐ์ง ์๋ค๋ฉด ๊ฑฐ๋ฆฌ๋น์ฉ ์ถ๊ฐํ๊ณ root ํฉ์น๊ธฐ
if find_parents(i) != find_parents(j):
union_parents(i, j)
ans += k
print(ans)
'Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Python] ๋ฐฑ์ค 2164๋ฒ - ์นด๋2 (0) | 2022.11.18 |
|---|---|
| [Python] ๋ฐฑ์ค 1774๋ฒ - ์ฐ์ฃผ์ ๊ณผ์ ๊ต๊ฐ (0) | 2022.11.16 |
| [Python] ๋ฐฑ์ค 21921๋ฒ - ๋ธ๋ก๊ทธ (0) | 2022.11.14 |
| [Python] ๋ฐฑ์ค 1100๋ฒ - ํ์ ์นธ (0) | 2022.11.13 |
| [Python] ๋ฐฑ์ค 11866๋ฒ - ์์ธํธ์ค ๋ฌธ์ 0 (0) | 2022.11.11 |