[Python3]프로그래머스_섬 연결하기

Beanzinu·2022년 2월 19일

코딩테스트

목록 보기
18/42

문제출처: https://programmers.co.kr/learn/courses/30/lessons/42861

접근법

프림 알고리즘으로 구현하였다.
1. 임의의 노드 하나를 list T에 추가한다.
2. 모든 노드가 T에 추가될 때까지 반복( while문 )
3. 가장 cost가 낮은 연결들부터 반복문을 돌며 T에 있는 노드 , T에 있지 않는 노드를 잇는 연결만 정답에 추가한다.

  • list "costs"에서 제거 및 정답에 cost "k" 추가

코드

def solution(n, costs):
    answer = 0
    T = []
    T.append( costs[0][0] )
    costs.sort(key=lambda x:x[2])
    while( len(T) < n ):
        for index,(i,j,k) in enumerate(costs):
            if( (i in T) ^ (j in T) ):
                T.append( j if i in T else i )
                costs.remove([i,j,k])
                answer += k
                break           
    return answer
profile
당신을 한 줄로 소개해보세요.

0개의 댓글