[파이썬] 백준 11657 : 타임머신 (골드4)
풀이
방향성 생각
- 음수간선이 포함된 벨만 포드문제
- V-1번의 안정화 과정, 1번의 음수 사이클 탐지를 확인한다.
파이썬
import sys
input = lambda : sys.stdin.readline().strip()
INF = float('inf')
N,M = map(int,input().split())
G = [tuple(map(int,input().split())) for _ in range(M)]
def bf(sx):
V = [INF]*(N+1)
V[sx] = 0
for n in range(N):
for a,b,cost in G:
if V[a] + cost < V[b]:
V[b] = V[a] + cost
if N-1 == n:
return -1
return V
answer = bf(1)
if type(answer) == list:
for i in range(2,N+1):
print(answer[i] if answer[i] != INF else -1)
else:
print(answer)
코멘트
- N-1번의 안정화 과정이 끝난 후, visit 배열이 업데이트 되는지 확인한다.
'Algorithm > Graph' 카테고리의 다른 글
[파이썬, 자바] 백준 28707 : 배열 정렬 (골드1) (0) | 2025.02.27 |
---|---|
[파이썬] 백준 16118 : 달빛 여우 (골드1) (0) | 2025.02.24 |
[파이썬, 자바] 백준 1559 : 놀라운 미로 (플레5) (0) | 2025.02.23 |
[파이썬] 백준 1865 : 웜홀 (골드3) (0) | 2025.02.19 |
[파이썬] 백준 2458 : 키 순서 (골드4) (0) | 2025.02.18 |
[파이썬, 자바] 백준 4485 : 녹색 옷 입은 애가 젤다지? (골드4) (0) | 2025.02.17 |
[파이썬, 자바] 백준 20158 : 사장님 달려가고 있습니다 (플레5) (0) | 2025.02.13 |
댓글