일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- level4
- 프로그래머스
- level1
- build
- WebOS
- LEVEL2
- 컴퓨터비전
- MSBuild
- 내휴학생활중의아주큰일
- 대학원일기
- Github
- level3
- git
- androidstudio
- Python
- 파이썬
- D3
- 자바
- 어렵다
- 안드로이드스튜디오
- SWEA
- 대학원
- py
- BFS
- 휴학
- java
- SQL
- 컨트리뷰톤
- Matrix Factorization
- 다시풀기
Archives
- Today
- Total
bit가 눈 앞에서 왔다갔다
Py) 프로그래머스 42861 섬 연결하기 본문
https://programmers.co.kr/learn/courses/30/lessons/42861
코딩테스트 연습 - 섬 연결하기
4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4
programmers.co.kr
# kruskal 알고리즘 - MST 사용, 최소의 비용으로 사이클을 형성하지 않음
def solution(n, costs):
answer = 0
costs.sort(key=lambda x: x[2]) # kruskal1 - 오름차순 정렬
# costs 내부 원소들을 기준으로 sorting 할건데 그 내부의 2번째 원소 기준으로
candi = set([costs[0][0]]) # 주의!
while len(candi) != n: # kruskal2 - 사이클 형성하지 않으면서 연결
for i in costs:
if i[0] in candi and i[1] in candi:
continue
if i[0] in candi or i[1] in candi:
candi.update([i[0], i[1]]) # 주의!!
answer += i[2]
break
return answer
*피드백
set에 원소로 들어가는건데 계속 []를 안넣어서 not iterable이라는 오류가 계속 뜸
*
kruskal 알고리즘, union-find
예전에 정리해둔게 도움이 많이 됨
2019.11.19 - [Algorithm/Concept] - Union-Find(Disjoint-Set) 합집합 찾기
Union-Find(Disjoint-Set) 합집합 찾기
Kruskal 알고리즘 전제 지식으로 배웠다. Kruskal 알고리즘이 정확히 기억 안 나서 책을 다시 봤다. Kruskal - MST(Minimmum Spanning Tree; 최소비용 신장 트리)의 일종으로써 Greedy Method를 이용한다. MST의..
yewon918.tistory.com
반응형
'Algorithm > Prob' 카테고리의 다른 글
Py) 프로그래머스 42628 이중우선순위큐 (0) | 2022.02.15 |
---|---|
Py) 프로그래머스 43164 여행경로 (0) | 2022.02.14 |
Py) 프로그래머스 43236 징검다리 (0) | 2022.02.10 |
Py) 프로그래머스 42579 (0) | 2022.02.09 |
Py) 프로그래머스 42885 구명보트 (0) | 2022.02.07 |
Comments