다익스트라(dijkstra) 알고리즘 파이썬 구현 코드

2024. 3. 18. 00:42·코딩테스트/programmers (python)

다익스트라 알고리즘 구현 코드 

import heapq

def dijkstra(graph, start):
    distances = { node : float('inf') for node in graph }
    distances[start] = 0
    queue = []
    heapq.heappush(queue, [0, start])  # 거리, 노드 순

    while queue:
        now_dist, now = heapq.heappop(queue)

        if distances[now] < now_dist:
            continue

        for new in graph[now]:
            new_dist = graph[now][new]
            distance = now_dist + new_dist
            if distance < distances[new]:
                distances[new] = distance
                heapq.heappush(queue, [distance, new])  # 거리, 노드

    return distances

graph = {
    'A': {'B': 8, 'C': 1, 'D': 2},
    'B': {},
    'C': {'B': 5, 'D': 2},
    'D': {'E': 3, 'F': 5},
    'E': {'F': 1},
    'F': {'A': 5}
}

print(dijkstra(graph, 'A'))

 

 

실행 결과

{'A': 0, 'B': 6, 'C': 1, 'D': 2, 'E': 5, 'F': 6}

 

 

참조

https://justkode.kr/algorithm/python-dijkstra/

 

Python으로 다익스트라(dijkstra) 알고리즘 구현하기

최단 경로 알고리즘은 지하철 노선도, 네비게이션 등 다방면에 사용되는 알고리즘입니다. 이번 시간에는 Python을 이용해 하나의 시작 정점으로 부터 모든 다른 정점까지의 최단 경로를 찾는 최

justkode.kr

 

'코딩테스트 > programmers (python)' 카테고리의 다른 글

Programmers / 2단계 / 롤케이크 자르기 / python  (0) 2024.03.19
Programmers / 3단계 / 이중우선순위큐 / python / heapq  (0) 2024.03.18
Programmers / 3단계 / 단어 변환 / python / DFS/BFS  (0) 2024.03.16
Programmers / 3단계 / 정수 삼각형 / python / 동적계획법(Dynamic Programming)  (1) 2024.03.16
Programmers / 1단계 / 신고 결과 받기 / python / 2022 KAKAO BLIND RECRUITMENT  (0) 2024.03.13
'코딩테스트/programmers (python)' 카테고리의 다른 글
  • Programmers / 2단계 / 롤케이크 자르기 / python
  • Programmers / 3단계 / 이중우선순위큐 / python / heapq
  • Programmers / 3단계 / 단어 변환 / python / DFS/BFS
  • Programmers / 3단계 / 정수 삼각형 / python / 동적계획법(Dynamic Programming)
seulll
seulll
개인 공부 블로그입니다.
  • seulll
    seulll
    seulll
  • 전체
    오늘
    어제
    • 분류 전체보기 (355) N
      • 코딩테스트 (241) N
        • programmers (python) (161)
        • 백준 (python) (78) N
      • 자료구조 | 알고리즘 (14)
      • 개발 | 프로젝트 (22)
        • Python (4)
        • Java | Spring (8)
        • Android (5)
        • Unity (3)
        • API (4)
      • CS (16)
        • Network (6)
        • SQL (2)
        • OS (4)
      • 데이터 분석 (14)
      • 기타 (15) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 글쓰기
    • 설정
  • 링크

    • GitHub
  • 인기 글

  • 태그

    야근 지수
    Python
    2 x n 타일링
    파이썬
    프로그래머스
    모델 성능 평가
    asterisk
    웹크롤링
    티스토리챌린지
    train_test_split
    대입 표현식
    카카오맵
    오블완
    confusion matrix
    그리디 알고리즘
    백엔드 개발자
    데이터분석
    카카오맵 api
    프렌즈4블록
    백엔드
    kakao map api
    백엔드 개발자 역량
    바다코끼리
    API
    Greedy
    박스플롯
    Boxplot
    오차행렬
    solving environment
    코딩테스트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
seulll
다익스트라(dijkstra) 알고리즘 파이썬 구현 코드
상단으로

티스토리툴바