π€λ¬Έμ ν΄κ²°
- G5 | λ€μ΅μ€νΈλΌ, κ·Έλν
νλμ μ μ μμ λ€λ₯Έ λͺ¨λ μ μ λ€μ μ΅λ¨ κ²½λ‘λ₯Ό ꡬνλ μκ³ λ¦¬μ¦
κ°μ , μ΅μ λ±λ± λ§μ΄ λμ€λ©΄ λ€μ΅μ€νΈλΌ?
λμ κ²½μ° λ€μ΅μ€νΈλΌλ₯Ό ν λ νμ μ°μ μμ νλ₯Ό μ΄μ©νλ€. (νμ΄μ¬μ ννλ₯Ό μ¬μ©)
A μμ κ° μ μλ λͺ¨λ μ μ λ€μ μ΅μλΉμ©μ 리μ€νΈμ λ΄μλκ³
B μ§μ μ λ΅μΌλ‘ μΆλ ₯νλ€.
- λ¨Όμ (κ°μ€μΉ, μμμ )μ ννμ λ£κ³ μμνλ€.
- μμμ μμ κ° μ μ κΉμ§μ λΉμ©μ κ°μ₯ ν° κ°(νμ΄μ¬μμ float('inf')λ₯Ό λ£μ΄λκ³ μμνλ€.)
- ννμμ κ°μ νλμ© κΊΌλΈλ€.
- κΊΌλΈ μ μ μμ μ΄μν μ μ λ€ μ€μμ μμ§ λ°©λ¬Ένμ§ μμκ³ , μ΄μν μ μ κΉμ§μ λΉμ©λ³΄λ€ νμ¬λΉμ© + κΊΌλΈ μ μ μμ μ΄μν μ μ κΉμ§μ κ°μ λΉμ©μ΄ μμΌλ©΄ κ° μ μ κΉμ§μ λΉμ©μ νμ¬λΉμ© + κΊΌλΈ μ μ μμ μ΄μν μ μ κΉμ§μ κ°μ λΉμ©μΌλ‘ μ λ°μ΄νΈνκ³ , ννμ λ£μ΄μ€λ€.
- μμ κ³Όμ μ λ°λ³΅νλ©΄ 리μ€νΈμ μμμ μμ λͺ¨λ μ μ κΉμ§μ μ΅μλΉμ©μ΄ λ€μ΄μμ κ²μ΄λ€.
π¨
π»μμ€ μ½λ
import sys
import heapq as h
input = sys.stdin.readline
def dijkstra(S, E):
pq = []
h.heappush(pq, (0, S))
visited = [0] * (N + 1)
key = [float('inf')] * (N + 1)
key[S] = 0
while pq:
k, u = h.heappop(pq)
if visited[u]:
continue
visited[u] = 1
for nei_u, nei_k in adj[u]:
if not visited[nei_u] and k + nei_k < key[nei_u]:
key[nei_u] = k + nei_k
h.heappush(pq, (key[nei_u], nei_u))
print(key[E])
if __name__ == '__main__':
N = int(input()) # λμμ κ°μ
M = int(input()) # λ²μ€μ κ°μ
adj = {x + 1: [] for x in range(N)}
for bus in range(M):
s, e, k = map(int, input().split())
adj[s].append((e, k))
A, B = map(int, input().split())
dijkstra(A, B)
πλ¬Έμ νμΈ
μΆμ²: BACKJOON ONLINE JUDGE
λ§ν¬: https://www.acmicpc.net/problem/1916
1916λ²: μ΅μλΉμ© ꡬνκΈ°
첫째 μ€μ λμμ κ°μ N(1 ≤ N ≤ 1,000)μ΄ μ£Όμ΄μ§κ³ λμ§Έ μ€μλ λ²μ€μ κ°μ M(1 ≤ M ≤ 100,000)μ΄ μ£Όμ΄μ§λ€. κ·Έλ¦¬κ³ μ μ§Έ μ€λΆν° M+2μ€κΉμ§ λ€μκ³Ό κ°μ λ²μ€μ μ λ³΄κ° μ£Όμ΄μ§λ€. λ¨Όμ μ²μμλ κ·Έ
www.acmicpc.net
λ¬Έμ
Nκ°μ λμκ° μλ€. κ·Έλ¦¬κ³ ν λμμμ μΆλ°νμ¬ λ€λ₯Έ λμμ λμ°©νλ Mκ°μ λ²μ€κ° μλ€. μ°λ¦¬λ Aλ²μ§Έ λμμμ Bλ²μ§Έ λμκΉμ§ κ°λλ° λλ λ²μ€ λΉμ©μ μ΅μν μν€λ €κ³ νλ€. Aλ²μ§Έ λμμμ Bλ²μ§Έ λμκΉμ§ κ°λλ° λλ μ΅μλΉμ©μ μΆλ ₯νμ¬λΌ. λμμ λ²νΈλ 1λΆν° NκΉμ§μ΄λ€.
μ λ ₯
첫째 μ€μ λμμ κ°μ N(1 ≤ N ≤ 1,000)μ΄ μ£Όμ΄μ§κ³ λμ§Έ μ€μλ λ²μ€μ κ°μ M(1 ≤ M ≤ 100,000)μ΄ μ£Όμ΄μ§λ€. κ·Έλ¦¬κ³ μ μ§Έ μ€λΆν° M+2μ€κΉμ§ λ€μκ³Ό κ°μ λ²μ€μ μ λ³΄κ° μ£Όμ΄μ§λ€. λ¨Όμ μ²μμλ κ·Έ λ²μ€μ μΆλ° λμμ λ²νΈκ° μ£Όμ΄μ§λ€. κ·Έλ¦¬κ³ κ·Έ λ€μμλ λμ°©μ§μ λμ λ²νΈκ° μ£Όμ΄μ§κ³ λ κ·Έ λ²μ€ λΉμ©μ΄ μ£Όμ΄μ§λ€. λ²μ€ λΉμ©μ 0λ³΄λ€ ν¬κ±°λ κ°κ³ , 100,000λ³΄λ€ μμ μ μμ΄λ€.
κ·Έλ¦¬κ³ M+3μ§Έ μ€μλ μ°λ¦¬κ° ꡬνκ³ μ νλ κ΅¬κ° μΆλ°μ μ λμλ²νΈμ λμ°©μ μ λμλ²νΈκ° μ£Όμ΄μ§λ€. μΆλ°μ μμ λμ°©μ μ κ° μ μλ κ²½μ°λ§ μ λ ₯μΌλ‘ μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μ μΆλ° λμμμ λμ°© λμκΉμ§ κ°λλ° λλ μ΅μ λΉμ©μ μΆλ ₯νλ€.
'Algorithm Problem > Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[python] λ°±μ€ - 5014. μ€ννΈλ§ν¬ (0) | 2020.09.24 |
---|---|
[python] λ°±μ€ - 3055. νμΆ (0) | 2020.09.23 |
[python] λ°±μ€ - 2225. ν©λΆν΄ (0) | 2020.09.22 |
[python] λ°±μ€ - 9251. LCS (0) | 2020.09.22 |
[python] λ°±μ€ - 11497. ν΅λ무 (0) | 2020.09.21 |