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] ๋ฐฑ์ค€ 10917
๐Ÿ”— Algorithm/Python

[Python] ๋ฐฑ์ค€ 10917

2021. 3. 7. 03:17

 

 

์–ด๋ ค์› ๋˜ ๋ฌธ์ œ๋Š” ์Šค์Šค๋กœ ์†”๋ธŒํ•ด๋„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด๋ž‘ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฒ€์ƒ‰์„ ํ•ด๋ณด๋Š”๋ฐ ํ‘ผ ์‚ฌ๋žŒ์ด ๋ณ„๋กœ ์—†์–ด์„œ ๊ฒ€์ƒ‰ํ•ด๋„ ์•ˆ๋‚˜์™€์„œ ์Šฌํސ๋‹น...

๋‚ด ๋‹ต์ด ์ตœ์ ์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜ ์ผ๋‹จ ํ’€์—ˆ๊ณ  ํ‘ผ ์‚ฌ๋žŒ์ด ๋ณ„๋กœ ์—†์–ด์„œ ๋‚˜๋ผ๋„ ๋ฆฌ๋ทฐ๋ฅผ ์จ๋†”์•ผ์ง€,,๐Ÿ˜‡

 

 

 

 

์ผ๋‹จ ๋‚˜๋Š” BFS + ์šฐ์„ ์ˆœ์œ„Q๋กœ ํ’€์—ˆ๋‹ค.

๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  x๋ฅผ key๋กœ y๋ฅผ value๋กœ ๋‘๊ณ , value๋Š” ์šฐ์„ ์ˆœ์œ„Q ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ €์žฅํ–ˆ๋‹ค.

(๊ฟˆ์€ ๋” ํฐ ์ˆ˜๋กœ ์ด๋™ํ•˜๊ณ  N์ด ๊ฐ€์žฅ ํฌ๊ธฐ ๋•Œ๋ฌธ์— N์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ๋ฐ”๋กœ ๊ทธ๋งŒ ํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๊ธฐ ์œ„ํ•จ)

๊ทธ๋ฆฌ๊ณ  queue์— ํ˜„์žฌ ์œ„์น˜์™€ ํ˜„์žฌ ์ƒํ™ฉ์ด ๋ฐ”๋€ ํšŸ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋ฉฐ BFS๋ฅผ ํ•œ๋‹ค.

N์„ ๋งŒ๋‚˜๋ฉด ๊ทธ๋งŒํ•œ๋‹ค. (bfs๋‹ˆ๊นŒ ์ฒ˜์Œ๋งŒ๋‚  ๋•Œ ์ตœ์†Œ)

 

 

Result

import sys
from collections import defaultdict
from collections import deque
import heapq


n,m = map(int, sys.stdin.readline().split())
dic=defaultdict(list)
for i in range(m):
    a,b = map(int,sys.stdin.readline().split())
    #๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ heap์— ๋„ฃ์Œ
    heapq.heappush(dic[a],-b)

res = -1
q=deque([[1,0]])
while q:
    num,cnt=q.popleft()
    for i in range(len(dic[num])):
        #๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋„ฃ์—ˆ์œผ๋‹ˆ๊นŒ ๋‚˜์˜ฌ ๋•Œ *-1
        temp = -1*heapq.heappop(dic[num])
        if temp == n:
            res=cnt+1
            break
        else:
            q.append([temp,cnt+1])
    if res != -1:
        break
print(res)

 

 

 

 

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

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

[Python] ๋ฐฑ์ค€ 1208  (0) 2021.03.08
[Python] ๋ฐฑ์ค€ 1167, 1967  (0) 2021.03.08
[Python] ๋ฐฑ์ค€ 2089  (0) 2021.03.04
[Python] ๋ฐฑ์ค€ 1442  (0) 2021.02.25
[Python] ๋ฐฑ์ค€ 6549  (0) 2021.02.20
    '๐Ÿ”— Algorithm/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Python] ๋ฐฑ์ค€ 1208
    • [Python] ๋ฐฑ์ค€ 1167, 1967
    • [Python] ๋ฐฑ์ค€ 2089
    • [Python] ๋ฐฑ์ค€ 1442
    sladuf
    sladuf

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