BOJ 1238 파티
✅ BOJ 1238 파티
스위프트는 다익스트라 알고리즘 풀려면 진짜 극악이다.
특히 효율성을 따져야한다면 힙을 구현해서 사용해야 하는데, 이거 진짜 너무나도 노가다 작업인듯.
다익 쓰면 쉽게 푸는데 이거 다익을 구현하는게 결국은 관건임.다른 사람들도 효율성을 위해서 힙을 사용했는데, 하 힙 구현해서 쓰기 너무나도 귀찮음 .. . . .
✅ 코드
//
// b1238.swift
// Algorithm
//
// Created by Hamlit Jason on 2022/05/11.
//
// https://www.acmicpc.net/problem/1238
import Foundation
struct b1238 {
static func run() {
let input = readLine()!.split(separator: " ")
var graph = [String: [String: Int]]()
for _ in 0..<Int(input[1])! {
let item = readLine()!.components(separatedBy:" ")
let start = String(item[0])
let end = String(item[1])
let cost = Int(item[2])!
if graph[item[0]] == nil {
graph[start] = [end: cost]
} else {
var a = graph[start]!
a[end] = cost
graph[start] = a
}
}
// print(graph)
var timeList = [Int](repeating: 0, count: Int(input[0])! + 1)
// 갈때
for n in 1...Int(input[0])! {
let answer = dijkstra(graph: graph, start: String(n))
timeList[n] = answer[String(input[2])]!
}
// print(timeList)
// 돌아올 때
let answer = dijkstra(graph: graph, start: String(input[2]))
answer.forEach {
timeList[Int($0)!] += $1
}
// print(timeList)
print(timeList.max()!)
}
}
'알고리즘 문제 풀이' 카테고리의 다른 글
[Swift] BOJ 12738 가장 긴 증가하는 부분 수열 3 (0) | 2022.05.12 |
---|---|
[Swift] BOJ 1300 K번째 수 (0) | 2022.05.12 |
[Swift] BOJ 1916 최소비용 구하기 (0) | 2022.05.11 |
[Swift] 프로그래머스 LV2. [1차] 뉴스 클러스터링 (0) | 2022.04.26 |
[Swift] 프로그래머스 LV2. 수식 최대화 (0) | 2022.04.16 |