반응형
Recent Posts
Notice
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- softeer
- 파이썬
- BOJ
- BFS
- boj 2309
- 백준 2309
- 99클럽
- 딥러닝
- 알고리즘
- 기능개발
- easy 딥러닝
- Python
- til
- 해시
- 혁펜하임
- 스택
- 코딩테스트 준비
- 개발자취업
- 코딩테스트준비
- 활성화 함수
- leetcode
- 99항해
- dfs
- 항해99
- 개발자 취업
- 구현
- python 2309
- 프로그래머스
- 큐
- 백준
Archives
- Today
- Total
동까의 코딩
99클럽 코테 스터디 5일차 TIL 본문
반응형
https://www.acmicpc.net/problem/1504
최단경로를 푸는 문제이고, 최단경로 코드를 참고하였습니다.
내일 또 다시 풀어볼 예정입니다.
import heapq
import sys
input = sys.stdin.readline
INF = int(1e9)
v, e = map(int, input().split())
graph = [[] for _ in range(v + 1)]
for _ in range(e):
x, y, cost = map(int, input().split())
graph[x].append((y, cost))
graph[y].append((x, cost))
def dijkstra(start):
distance = [INF] * (v + 1)
q = []
heapq.heappush(q, (0, start))
distance[start] = 0
while q:
dist, now = heapq.heappop(q)
if distance[now] < dist:
continue
for i in graph[now]:
cost = dist + i[1]
if distance[i[0]] > cost:
distance[i[0]] = cost
heapq.heappush(q, (cost, i[0]))
return distance
v1, v2 = map(int, input().split())
original_distance = dijkstra(1)
v1_dis = dijkstra(v1)
v2_dis = dijkstra(v2)
v1_path = original_distance[v1] + v1_dis[v2] + v2_dis[v]
v2_path = original_distance[v2] + v2_dis[v1] + v1_dis[v]
result = min(v1_path, v2_path)
print(result if result < INF else -1)
반응형
'문제 풀이 > 99클럽' 카테고리의 다른 글
99클럽 코테 스터디 TIL 7일차 (0) | 2025.01.24 |
---|---|
99클럽 코테스터디 TIL 6일차 (0) | 2025.01.23 |
99클럽 코테 스터디 4일차 TIL (0) | 2025.01.17 |
99클럽 코테 스터디 3일차 TIL (0) | 2025.01.16 |
99클럽 코테 스터디 2일차 TIL (1) | 2025.01.14 |