Dijkstra
-
dijkstra_Programmers_배달 [swift]알고리즘/알고리즘 문제풀이 2025. 3. 25. 15:08
https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 분명히 풀었던 문제지만, 그냥 복습차 다시풀어봤다.예전에는 이해를 반만하고 풀었던 것 같지만 나아진 기분 더보기더보기import Foundation func solution(_ N:Int, _ road:[[Int]], _ k:Int) -> Int { // index + 1 == 마을 번호 var distance = [Int](repeating: Int.max, count: N+1) // 출발 : (도착, 거리) var..
-
dijkstra_Leetcode_787. Cheapest Flights Within K Stops [swift]알고리즘/알고리즘 문제풀이 2025. 2. 24. 17:45
https://leetcode.com/problems/cheapest-flights-within-k-stops/description/ 요구사항이동가능한 간선을 주고, 시작점과 도착점을 준다. 이 때, k번 이하로 이동하는 경로를 사용해야한다.가능한 경로가 없을 때, -1을 반환한다.가장 작은 cost를 반환한다.문제접근매개변수 flights로 graph 생성, djikstra 시작 준비. 정답을 저장할 costs, queue를 선언하고 매개변수 src를 기준하여 초기값 주입djikstra 시작.queue의 첫번째 element 추출graph를 참조하여, nextFlight를 순회한다.if costs[nextDst].isEmpty 라면, 새로운 정보를 costs[nextDst]와 queue에 추가한다.el..
-
Dijkstra(최단거리)_programmers_가장 먼 노드알고리즘/알고리즘 문제풀이 2022. 5. 25. 16:42
https://programmers.co.kr/learn/courses/30/lessons/49189 일단, 틀렸다. 듣기로는 BFS일 때, 잘 풀리는 문제라고 한다. 실제로 간선 간 거리가 1로 지정되어 있기 때문인듯. 하지만 더 풀어보지 않는 이유는 dijkstra는 제대로 구현되었다고 생각했기때문! 마지막 3개의 testCase가 dijkstra의 반례인듯. 코드 더보기 class programmers_다익스트라_가장먼노드 { var map : [[Int]] = .init() var minimumLength: [Int] = .init() // (node, length) var queue : [(Int,Int)] = .init() { didSet { queue.sort() { $0.1 < $1.1 }..