[프로그래머스] Level2, 배달 (Python)

2021. 9. 13. 14:04·알고리즘/프로그래머스
728x90
반응형

문제

https://programmers.co.kr/learn/courses/30/lessons/12978?language=python3 

 

코딩테스트 연습 - 배달

5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4

programmers.co.kr

 

코드

import sys
import heapq
def solution(N, road, K):
    answer = 0
    INF = sys.maxsize
    graph = [[] for _ in range(N+1)]
    distance = [INF for _ in range(N+1)]
    
    for a,b,c in road:
        graph[a].append((c,b))
        graph[b].append((c,a))
    
    queue = []
    heapq.heappush(queue, (0, 1))
    distance[1] = 0
    def dijkstra():
        while queue:
            wei, now = heapq.heappop(queue)
            if distance[now] < wei:
                continue
            for w, next in graph[now]:
                next_w = w + wei
                if distance[next] > next_w:
                    distance[next] = next_w
                    heapq.heappush(queue, (next_w, next))
    dijkstra()
    for i in range(1, N+1):
        if distance[i] <= K:
            answer += 1
    return answer

 

경로에 가중치가 서로 다르므로 다익스트라를 이용하여 1번정점에서 모든 정점까지 최단경로를 구한다음

 

K보다 작은 정점이 몇개인지 세어주면 된다.

반응형
저작자표시 (새창열림)

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] Level3, 불량 사용자 (Python)  (0) 2021.09.10
[프로그래머스] Level2, 수식최대화 (Python)  (0) 2021.09.10
[프로그래머스] Level2, 거리두기 확인하기 (Python)  (0) 2021.08.25
[프로그래머스] Level3, 자물쇠와 열쇠 (Python)  (0) 2021.08.10
[프로그래머스] Level3, 합승 택시 요금 (Python)  (0) 2021.08.10
'알고리즘/프로그래머스' 카테고리의 다른 글
  • [프로그래머스] Level3, 불량 사용자 (Python)
  • [프로그래머스] Level2, 수식최대화 (Python)
  • [프로그래머스] Level2, 거리두기 확인하기 (Python)
  • [프로그래머스] Level3, 자물쇠와 열쇠 (Python)
wookcode
wookcode
공부한 내용들을 정리하고 기록하는 블로그입니다.
    반응형
  • wookcode
    wookcode
    wookcode
  • 전체
    오늘
    어제
    • 카테고리 (196) N
      • study (1) N
        • 아파치 카프카 애플리케이션 프로그래밍 with 자.. (0)
        • 인프런 (1) N
      • Live Study (15)
      • Programming (14)
        • Java (8)
        • Python (1)
        • Springboot (5)
        • MSA (0)
      • 알고리즘 (117)
        • 백준 (58)
        • 프로그래머스 (59)
      • 에러로그 (5)
      • 항해99 (23)
      • 면접 (1)
      • 프로젝트 (1)
      • CS (19)
        • 네트워크 (2)
        • 운영체제 (2)
        • 데이터베이스 (2)
        • 컴퓨터구조 (1)
        • Java (8)
        • Spring (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    후기
    알고리즘
    SpringBoot
    파이썬
    실전프로젝트
    조합
    항해99
    항해마켓
    스파르타코딩클럽
    해결
    미니프로젝트
    김영한
    java
    정리
    카카오인턴
    카카오코딩테스트
    백준
    코딩테스트
    회고
    버그
    spring
    jpa
    프로그래머스
    브루트포스
    괄호
    orm
    SFlash
    그리디
    에러
    인프런
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
wookcode
[프로그래머스] Level2, 배달 (Python)
상단으로

티스토리툴바