일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- leetcode
- FIT XR
- 개발자
- 파비최
- 3줄정리
- 영어원서읽기
- 프로젝트
- 읽기
- 화상영어
- 미드시청
- 링피트
- 쓰릴오브파이트
- 괜찮음
- 매일
- realclass
- 영어공부
- 사이드
- 10분
- 스탭퍼
- 월간
- Writing
- 운동
- Daily Challenge
- 뭐든
- Problem Solving
- English
- 30분
- 만화도
- 리얼 클래스
- 잡생각
Archives
- Today
- Total
파비의 매일매일 공부기록
Today's Challenge 본문
https://leetcode.com/problems/min-cost-to-connect-all-points
최소 스패닝 트리를 구하는 문제다.
파이썬으로는 코드를 매우 간단하게 표시 가능한데, 가독성이 별로라는 난 좀 풀어서 썼다.
모든 점의 거리를 일단 무한대 값으로 놓고
하나의 점으로부터 나머지 점들의 거리를 모두 구해서 가장 작은 값을 저장해서 합계를 내는 방식이다.
class Solution:
def minCostConnectPoints(self, points: List[List[int]]) -> int:
d = {}
res = 0
for i, (x, y) in enumerate(points):
if i:
d[(x, y)] = float('inf')
else:
d[(x, y)] = 0
while d:
x, y = min(d, key=d.get)
res += d.pop((x, y))
for x1, y1 in d:
d[(x1, y1)] = min(d[(x1, y1)], abs(x-x1)+abs(y-y1))
return res
반응형
'Problem Solving > LeetCode' 카테고리의 다른 글
Today's Challenge (0) | 2022.04.28 |
---|---|
Today's Challenge (0) | 2022.04.27 |
Today's Challenge (0) | 2022.04.25 |
Today's Challenge (0) | 2022.04.24 |
Today's Challenge (0) | 2022.04.23 |
Comments