[PROGRAMMERS]-接続島(Greedy)
📃 つなぎ島
に答える
Kruskalアルゴリズム
貪欲な方法とは何ですか。
1)最小料金幹線からなる2)周期を含まない条件により各段階で周期を構成しない最小料金幹線を選択する.
Kruskalアルゴリズムの動作
つまり、まず最も低い重みを選択します.周期を形成する幹線を除く.この幹線を現在のMST(最小費用拡張ツリー)のセットに追加します.
コード#コード#
def solution(n, costs):
answer = 0
costs.sort(key = lambda x : x[2])
connect = set([costs[0][0]]) # 연결을 확인하는 집합
while n != len(connect):
for cost in costs :
if cost[0] in connect and cost[1] in connect:
continue
if cost[0] in connect or cost[1] in connect:
connect.update([cost[0],cost[1]])
answer += cost[2]
break
return answer
Reference
この問題について([PROGRAMMERS]-接続島(Greedy)), 我々は、より多くの情報をここで見つけました https://velog.io/@zioo/PROGRAMMERS-섬-연결하기Greedyテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol