🐣(75)
-
[그래프] 플로이드 워셜(Floyd-Warshall Algorithm)
플로이드 워셜(Floyd-Warshall Algorithm) 컴퓨터 과학에서 플로이드-워셜 알고리즘(Floyd-Warshall Algorithm)은 변의 가중치가 음이거나 양인 (음수 사이클은 없는) 가중 그래프에서 최단 경로들을 찾는 알고리즘이다. 알고리즘을 한 번 수행하면 모든 꼭짓점 쌍 간의 최단 경로의 길이(가중치의 합)을 찾는다. 알고리즘 자체는 경로를 반환하지는 않지만, 알고리즘을 약간만 변형시키면 경로를 찾을 수 있다. 이 알고리즘의 일부 버전은 관계 R의 추이적 폐포를 찾거나, 가중 그래프의 모든 꼭짓점 쌍 간의 최대 폭 경로를 (슐츠 선거 제도와 결합해서) 찾는 것이 가능하다. 알고리즘 플로이드-워셜 알고리즘은 각각의 꼭짓점 쌍을 지나는 그래프의 모든 경로를 비교한다. 이 방법은 그래프에..
2024.02.05 -
9935 swift - 문자열 폭발
44% 시간초과로 틀린 코드. import Foundation var i=readLine()! let c=readLine()! while (i.contains(c)) { i = i.replacingOccurrences(of: c, with: "") } print(i.isEmpty ? "FRULA" : result) 스택으로 재접근하여 문제풀이. var input = readLine()! let pattern = readLine()! var stack = [Character]() for char in input { stack.append(char) if stack.count >= pattern.count { var isPattern = true for (index, patternChar) in patter..
2024.02.02 -
[Programmers] 튜플 Swift
프로그래머스 튜플 Swift 내 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import Foundation func solution(_ s:String) -> [Int] { var dic = [Int:Int]() var result = [Int]() var input = s.replacingOccurrences(of: "{", with: "") input = input.replacingOccurrences(of: "}", with: "") var data = input.split{$0 == ","}.map{Int(String($0))!} for i in data { if dic[i] != nil { dic[i]! += 1 } else { dic[i] ..
2023.06.19 -
9663 swift - N-Queen
https://www.acmicpc.net/problem/9663 [Swift] BackTracking / 백트래킹 / 퇴각검색 BackTracking / 백트래킹 / 퇴각검색 여러 후보 해 중에서 특정 조건을 충족시키는 모든 해를 찾는 알고리즘. 해를 찾는 도중 막히면 돌아가 다시 해를 찾아간다. 1. 해를 찾아가는 과정은 '루트'에서 chanhhh.tistory.com 시간 초과. 얼마나 효율적으로 검사 할 수 있는가. 더보기 시간 초과. import Foundation let n=Int(readLine()!)! var board=Array(repeating: 0, count: n) var queen=0 var count=0 public func progressTime(_ closure: () -> ..
2023.06.12 -
11444 swift - 피보나치 수 6
[종만북] Divide & Conquer / 분할 정복 Algorithmic Problem Solving Strategies 개인적으로 읽고 정리한 요약 입니다. 아래 링크에 문제 풀이 예제가 있습니다. GitHub - chanheki/AlgorithmicProblemSolvingStrategies: Algorithm Book Study Algorithm Book Study. Contribute chanhhh.tistory.com import Foundation let DIV: UInt = 1000000007 var f = [UInt: UInt]() func fibo(_ n: UInt) -> UInt { if n == 0 { return 0 } if n == 1 { return 1 } if n == ..
2023.06.11