sladuf
200
sladuf
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (83)
    • ๐Ÿ“š Programming (32)
      • Swift (13)
      • JAVA (2)
      • Python (6)
      • SQL (6)
      • Web (5)
    • ๐Ÿ“ฑ iOS (25)
      • Base (7)
      • SwiftUI (9)
      • UIKit (7)
      • ์ธ๊ฐ• & ์ฑ… (2)
    • ๐Ÿ”— Algorithm (20)
      • Python (12)
      • Swift (3)
      • Tip (5)
    • ๐Ÿ—‚ ETC (6)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์Šค์œ„ํ”„ํŠธ
  • Swift

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๊ธ€์“ฐ๊ธฐ ์„ค์ •
hELLO ยท Designed By ์ •์ƒ์šฐ.
sladuf

200

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํ•ฉ์Šน ํƒ์‹œ ์š”๊ธˆ
๐Ÿ”— Algorithm/Python

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํ•ฉ์Šน ํƒ์‹œ ์š”๊ธˆ

2021. 3. 11. 04:37

 

 

 

 

 

๋ฌธ์ œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์•„๋ž˜ ๋งํฌ ์ฐธ์กฐ

 

programmers.co.kr/learn/courses/30/lessons/72413

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํ•ฉ์Šน ํƒ์‹œ ์š”๊ธˆ

6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4

programmers.co.kr

 

 

Dijkstra ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด์„œ ํ’€์—ˆ๋‹ค. (์ตœ๋‹จ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉํ•ด์•ผํ•จ)

์ด๊ฒƒ ๋•Œ๋ฌธ์— ์“ด Dijkstra ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๋ช… ๊ธ€ -> 990427.tistory.com/50

 

[Algorithm] Dijkstra ๋‹ค์ต์ŠคํŠธ๋ผ ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ A์—์„œ B๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋จผ์ €, ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ง๊ด€์ ์œผ๋กœ ์‚ดํŽด๋ณด์ž ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„์—์„œ A->C๋กœ ๊ฐ€๊ณ ์ž ํ•  ๋•Œ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•ด๋ณด์ž. ์šฐ์„  ์ถœ๋ฐœ

990427.tistory.com

 

ํƒ์‹œ๋ฅผ ์–ธ์ œ ๋‚ด๋ฆด์ง€ ๋ชจ๋ฅด๋‹ˆ๊นŒ 1๋ถ€ํ„ฐ n๊นŒ์ง€๋ฅผ ์‹œ์ž‘์ ์œผ๋กœ ๋‘๊ณ  ์ตœ๋‹จ๊ฒฝ๋กœ๋ฅผ ๋”ฐ์ ธ๋ด์•ผํ•œ๋‹ค.

(1->s)+(1->a)+(1->b) ์ด ์„ธ ๊ฒฝ๋กœ์˜ ํ•ฉ์ด s์—์„œ 1๊นŒ์ง€ ํ•ฉ์Šนํ•˜๊ณ , 1๋ถ€ํ„ฐ A,B๊นŒ์ง€ ๋”ฐ๋กœ๊ฐ€๋Š” ๊ฒฝ์šฐ์ด๋‹ค.

 

์ฒ˜์Œ๋ถ€ํ„ฐ ๋”ฐ๋กœ๊ฐ€๋Š” ๊ฒฝ์šฐ, s์—์„œ n๊นŒ์ง€ ํ•ฉ์Šน ํ›„ ๋”ฐ๋กœ๊ฐ€๋Š” ๊ฒฝ์šฐ๋ฅผ ๋‚˜๋ˆ„์–ด ๋‹ค์ต์ŠคํŠธ๋ผ ํ•ด์•ผํ•œ๋‹ค.

 

Code

from collections import defaultdict
import heapq

def dijkstra(n,l,r):
    cost=[float('inf') for x in range(n+1)]
    h=[(0,l)]
    cost[l]=0
    
    while h:
        cnt,num=heapq.heappop(h)
        if cost[num]<cnt:
            continue
            
        for i,j in dic[num]:
            if cnt+j<cost[i]:
                cost[i]=cnt+j
                heapq.heappush(h,(cnt+j,i))
                
    return cost[r]


def solution(n, s, a, b, fares):
    global dic
    dic=defaultdict(list)
    for x,y,z in fares:
        dic[x].append([y,z])
        dic[y].append([x,z])
        
    #s->a, s->b ๋”ฐ๋กœ๊ฐ€๋Š” ๊ฒฝ์šฐ
    res=dijkstra(n,s,a)+dijkstra(n,s,b)
    
    for i in range(1,n+1):
        if i==s:
            continue
        # s->i ๊นŒ์ง€ ํ•ฉ์Šน ํ›„ i์—์„œ ๋ถ€ํ„ฐ ๋”ฐ๋กœ๊ฐ€๋Š” ๊ฒฝ์šฐ 
        res=min(res,dijkstra(n,s,i)+dijkstra(n,i,a)+dijkstra(n,i,b))
        
    return res
    

 

 

 

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ”— Algorithm > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ง€ํ˜• ์ด๋™  (0) 2021.03.11
[Python] ๋ฐฑ์ค€ 7453  (2) 2021.03.09
[Python] ๋ฐฑ์ค€ 1208  (0) 2021.03.08
[Python] ๋ฐฑ์ค€ 1167, 1967  (0) 2021.03.08
[Python] ๋ฐฑ์ค€ 10917  (0) 2021.03.07
    '๐Ÿ”— Algorithm/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ง€ํ˜• ์ด๋™
    • [Python] ๋ฐฑ์ค€ 7453
    • [Python] ๋ฐฑ์ค€ 1208
    • [Python] ๋ฐฑ์ค€ 1167, 1967
    sladuf
    sladuf

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”