[BOJ/๋ฐฑ์ค€] 17396 ๋ฐฑ๋„์–ด - ํŒŒ์ด์ฌ

2021. 8. 23. 20:49ยท๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜/PS

๋ฌธ์ œ

๋ฐฑ์ค€ 17396 ๋ฐฑ๋„์–ด

 

https://www.acmicpc.net/problem/17396

 

17396๋ฒˆ: ๋ฐฑ๋„์–ด

์ฒซ ๋ฒˆ์งธ ์ค„์— ๋ถ„๊ธฐ์ ์˜ ์ˆ˜์™€ ๋ถ„๊ธฐ์ ๋“ค์„ ์ž‡๋Š” ๊ธธ์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋Š” ๋‘ ์ž์—ฐ์ˆ˜ N๊ณผ M์ด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค.(1 ≤ N ≤ 100,000, 1 ≤ M ≤ 300,000) ๋‘ ๋ฒˆ์งธ ์ค„์— ๊ฐ ๋ถ„๊ธฐ์ ์ด ์ ์˜ ์‹œ์•ผ์— ๋ณด์ด๋Š”

www.acmicpc.net

 

๋ฌธ์ œํ’€์ด

๋ฐฑ๋„์–ด ํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์ตœ๋‹จ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋กœ ๊ฐ๊ฐ์˜ ๋ถ„๊ธฐ์ ์œผ๋กœ ๊ฐ€๋Š” ์‹œ๊ฐ„์ด ๊ฐ€์ค‘์น˜๊ฐ€ ๋˜๋Š” ๋‹ค์ต์ŠคํŠธ๋ผ ๋ฌธ์ œ

(n-1)๋ฒˆ์งธ ๋ถ„๊ธฐ์ ์€ ๊ฐ’์ด 1์ด์–ด๋„ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ถ„๊ธฐ์ ์ด๊ธฐ์— ๊ฐ’์ด 0์ธ ๋ถ„๊ธฐ์ ๊ณผ ๋™์ผ

์ด๋ฅผ ์ œ์™ธํ•œ ๋ถ„๊ธฐ์ ์€ ๊ฐ’์ด 1์ด๋ผ๋ฉด continue ํ•ด์ฃผ๊ธฐ

 

๊ฐœ๋…์ •๋ฆฌ

๋‹ค์ต์ŠคํŠธ๋ผ๋Š” ์ตœ๋‹จ๊ฒฝ๋กœ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์‹œ์ž‘์ ์œผ๋กœ๋ถ€ํ„ฐ ๋‹ค๋ฅธ ๋ชจ๋“  ์ ๊นŒ์ง€์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š”๋ฐ ์“ฐ์ธ๋‹ค.

bfs๋„ ์ตœ๋‹จ๊ฒฝ๋กœ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด์ง€๋งŒ ์ฐจ์ด์ ์ด ์žˆ๋‹ค๋ฉด, bfs๋Š” ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜๊ฐ€ 1๋กœ ๋™์ผํ•œ ๊ฒฝ์šฐ์— ์ ์šฉํ•˜๊ณ 

๋‹ค์ต์ŠคํŠธ๋ผ๋Š” ๊ฐ€์ค‘์น˜๊ฐ€ ์Œ์ด ์•„๋‹Œ ๊ฐ’์ธ ๊ฒฝ์šฐ์— ์ ์šฉํ•œ๋‹ค.

heapq ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„!

 

์ฝ”๋“œ

import sys
import heapq
inf=sys.maxsize
input=sys.stdin.readline

n,m=map(int,input().split())
can=list(map(int,input().split()))
can[-1]=0 ##๋„ฅ์„œ์Šค์—๋Š” ๋ฐฉ๋ฌธ ๊ฐ€๋Šฅ
link=[[] for _ in range(n)]
for i in range(m):
     a,b,t=map(int,input().split())
     link[a].append([b,t])
     link[b].append([a,t])

heap=[]
heapq.heappush(heap,[0,0])
dp=[inf for _ in range(n)]
dp[0]=0

while(heap):
    w,now=heapq.heappop(heap)
    if dp[now]<w:
        continue
    else:
        for nxt,nxt_w in link[now]:
            wei=nxt_w+w
            if dp[nxt]>wei and can[nxt]==0:
                dp[nxt]=wei
                heapq.heappush(heap,[wei,nxt])

result=dp[n-1]
print(result if result<inf else -1)

 

 

์–ด๋ ค์› ๋˜ ์ 

์ฒ˜์Œ์— dp[now]<w์ธ ๊ฒฝ์šฐ ์ฆ‰, ๊ฐฑ์‹  ์ „ ๊ฐ’์ด ์ด๋ฏธ ๋” ์ž‘์€ ๊ฒฝ์šฐ๋ฅผ continueํ•˜์ง€ ์•Š๊ณ  ํ’€์—ˆ๋”๋‹ˆ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค.

๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ• ๋•Œ๋Š” continue๋ฌธ์„ ์ ์ ˆํžˆ ํ™œ์šฉํ•ด์„œ ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ ๋“ฏ!! 

'๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜ > PS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ/๋ฐฑ์ค€] 1074 Z - ํŒŒ์ด์ฌ  (0) 2021.09.17
[BOJ/๋ฐฑ์ค€] 14891 ํ†ฑ๋‹ˆ๋ฐ”ํ€ด - ํŒŒ์ด์ฌ  (0) 2021.09.15
[BOJ/๋ฐฑ์ค€] 13302 ๋ฆฌ์กฐํŠธ - ํŒŒ์ด์ฌ  (0) 2021.08.25
[BOJ/๋ฐฑ์ค€] 20923 ์ˆซ์ž ํ• ๋ฆฌ๊ฐˆ๋ฆฌ ๊ฒŒ์ž„ - ํŒŒ์ด์ฌ  (0) 2021.08.24
[BOJ/๋ฐฑ์ค€] 11582๋ฒˆ ํŒŒ์ด์ฌ - ์น˜ํ‚จ TOP N  (0) 2021.07.25
'๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜/PS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [BOJ/๋ฐฑ์ค€] 14891 ํ†ฑ๋‹ˆ๋ฐ”ํ€ด - ํŒŒ์ด์ฌ
  • [BOJ/๋ฐฑ์ค€] 13302 ๋ฆฌ์กฐํŠธ - ํŒŒ์ด์ฌ
  • [BOJ/๋ฐฑ์ค€] 20923 ์ˆซ์ž ํ• ๋ฆฌ๊ฐˆ๋ฆฌ ๊ฒŒ์ž„ - ํŒŒ์ด์ฌ
  • [BOJ/๋ฐฑ์ค€] 11582๋ฒˆ ํŒŒ์ด์ฌ - ์น˜ํ‚จ TOP N
.๋ฐ.
.๋ฐ.
  • .๋ฐ.
    Do IT
    .๋ฐ.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • All (40)
      • ๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜ (21)
        • PS (16)
        • SQL (4)
        • ์ด๋ก  (5)
      • ๐ŸŽˆcapstone (2)
      • ๐Ÿ’ชBackend (12)
        • Django (8)
        • Spring (4)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

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

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    responsecustomclass
    SQL
    resposneentity
    ETL
    ์ฝ”ํ…Œ
    ๋‹ค์ค‘์กฐ์ธ
    python
    apiresponse
    ํŒŒ์ด์ฌ
    programmers
    ์Šคํ”„๋ง๋ฐฐ์น˜
    ์„œ๋ธŒ์ฟผ๋ฆฌ
    BFS
    springscheduler
    BOJ
    bruteforce
    PS
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    Django
    ๋ฐฑ์ค€
    MYSQL
    ์Šค์ผ€์ค„๋Ÿฌ
    Batch
    windowํ•จ์ˆ˜
    ๋ฌธ์ œํ’€์ด
    crud
    ์‘๋‹ตํ˜•์‹
    ์ž๋ฐ”
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ์žฌ๊ท€
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
.๋ฐ.
[BOJ/๋ฐฑ์ค€] 17396 ๋ฐฑ๋„์–ด - ํŒŒ์ด์ฌ
์ƒ๋‹จ์œผ๋กœ

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