https://www.acmicpc.net/problem/10282
10282번: 해킹
최흉최악의 해커 yum3이 네트워크 시설의 한 컴퓨터를 해킹했다! 이제 서로에 의존하는 컴퓨터들은 점차 하나둘 전염되기 시작한다. 어떤 컴퓨터 a가 다른 컴퓨터 b에 의존한다면, b가 감염되면
www.acmicpc.net
풀이
시작값이 주어졌기에 다익스트라 알고리즘으로 풀어주었다.
# 10282번 해킹
import sys
import heapq
input = sys.stdin.readline
INF = sys.maxsize
# 다익스트라 알고리즘
def dijkstra(start):
q=[]
heapq.heappush(q, (0, start))
distance[start]=0
while q:
dist, now = heapq.heappop(q)
if distance[now] < dist:
continue
for v, w in graph[now]:
cost = dist + w
if cost < distance[v]:
distance[v] = cost
heapq.heappush(q,(cost, v))
t = int(input())
for _ in range(t):
n, d, c = map(int, input().split())
graph = [[] for i in range(n+1)]
distance = [INF]*(n+1)
cnt = 0
for _ in range(d):
a, b, s = map(int, input().split())
graph[b].append((a, s))
dijkstra(c)
maximum = 0
# 감염되지않은 컴퓨터 중에서 출력
for i in distance:
if i != INF:
maximum = max(maximum, i)
cnt += 1
print(cnt, maximum)
출력결과
'백준 > 최단거리' 카테고리의 다른 글
[백준] 11779번 최소비용 구하기 2 - 파이썬 (0) | 2022.02.21 |
---|---|
[백준] 9370 미확인 도착지 - 파이썬 (0) | 2022.02.20 |
[백준] 18352번 특정 거리의 도시 찾기 - 파이썬 (0) | 2022.02.19 |
[백준] 10159번 저울 - 파이썬 (0) | 2022.02.18 |
[백준] 1865번 웜홀 - 파이썬 (1) | 2022.02.17 |