2019.03.12) 백준 최단경로 특집 1편 - 1753(PyPy3)
2019. 3. 12. 15:55ㆍ프로그래밍(주력)/백준 문제풀이
우선순위 큐 사용했다.
파이썬한테 불리한 문제라 혼났다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | from heapq import heappush, heappop V, E = map(int, input().split(' ')) K = int(input()) graph = {i: list() for i in range(1, V + 1)} for i in range(E): u, v, w = map(int, input().split(' ')) graph[u].append((v, w)) # 무한대를 이렇게 구현해보았다. check = {i: 'INF' for i in range(1, V + 1)} check[K] = 0 pq = list() heappush(pq, (0, K)) # 우선순위 큐를 활용 while pq: w, now = heappop(pq) # 만약 지금까지 합해진 길이보다 기록된 길이가 짧으면 스킵 if check[now] is not 'INF' and check[now] < w: continue for i, w in graph[now]: # 지금까지 기록된거 + 앞으로 진행할것이 이미 기록되어있는것보다 적으면 nc = w + check[now] if check[i] is 'INF' or nc < check[i]: check[i] = nc # 새로이 큐에 추가 heappush(pq, (nc, i)) for i in range(1, V + 1): print(check[i]) | cs |
'프로그래밍(주력) > 백준 문제풀이' 카테고리의 다른 글
2019.03.14) 백준 최단경로 특집 3편 - 1504, 2606(PyPy3) (0) | 2019.03.14 |
---|---|
2019.03.13) 백준 최단경로 특집 2편 - 11404, 1916(PyPy3) (0) | 2019.03.13 |
2019.03.11) 백준 dfs 특집 3편 - 11724, 2468(PyPy3) (0) | 2019.03.11 |
2019.03.10) 백준 이진탐색 마지막 - 1920 (PyPy3) (0) | 2019.03.10 |
2019.03.09) 백준 주제가 섞여버렸.. - 1300, 2805 (PyPy3) (0) | 2019.03.09 |