코드(9)
-
어두운 길 코드 및 해설 (파이썬)
출처: 이것이 취업을 위한 코딩 테스트다 with 파이썬, Q 43, p 397 크루스칼 알고리즘을 이용해 최소 비용의 신장 트리를 탐색했습니다. 최종 반환해야 할 답이 절약할 수 있는 최대 금액이므로, 전체 도로에 가로등을 설치하는데 드는 비용을 total_cost로 저장하고, 최소 신장 트리를 만들었을 때 가로등을 설치하는데 드는 비용을 min_cost로 저장하여 둘의 차를 반환했습니다. import sys # 입력 받아오기 inputs = list(map(int, sys.stdin.read().split())) # 집의 수 N = inputs[0] parent = [0] * N for i in range(N): parent[i] = i # 도로의 수 M = inputs[1] # (도로의 길이, 도로..
2021.07.14 -
프로그래머스 가장 먼 노드 코드 및 해설 (파이썬)
https://programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 3가지 수정사항을 제외하고 다익스트라 알고리즘을 그대로 활용해 풀이했습니다. (1) 간선이 양방향이므로 graph에 정보를 저장할 때 두 가지 방향을 모두 저장했습니다 (2) 간선에 weight가 없으므로 일괄적으로 1로 통일했습니다 (3) 마지막에 답을 반환할 때 1번 노드를 제외한, 2번에서 마지막 노드까지의 거리 중 최댓값을 구하고, 이 최댓값과 같은 거리를 갖는 노드의 개수를 반환하도록 했습니다 import heapq def..
2021.07.05 -
프로그래머스 배달 코드 및 해설 (파이썬)
https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 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 2가지 수정사항을 제외하고 다익스트라 알고리즘을 그대로 활용해 풀이했습니다. (1) 하나의 도로에서 양방향으로 이동 가능하므로, graph를 만들 때 양방향 정보를 모두 저장했습니다 (2) 마지막에 답을 구할 때 주어진 K 이하의 시간이 걸리는 마을의 개수를 세서 반환했습니다. import heapq def solution(N, road..
2021.07.05