🐣/BOJ(38)
-
1967 swift - 트리의 지름
₩BFS 사용 [Swift] Breadth-First Search / BFS BFS (Breadth-First Search) 인접한 노드를 먼저 탐색하는 방식. O(Vertex+Edge) A→B→C→D→E→F→G→H 해당하는 그래프는 아래와 같이 인접 리스트로 나타낼 수 있다. let graph: [String: [String]] = [ "A" : ["B", "C"], chanhhh.tistory.com 1. 접근방법. 결국엔 Leaf 에서 Leaf의 길이를 재는 거니까, Leaf에서 갈 수 있는 모든 Leaf 들을 BFS로 탐색하여 가장 긴 것을 찾으면 된다고 판단. => 시간 초과 더보기 var n = Int(readLine()!)! var N = Array(repeating: 1, count: n)..
2024.02.07 -
11404 swift - 플로이드
플로이드 워셜 알고리즘 사용 [그래프] 플로이드 워셜(Floyd-Warshall Algorithm) 플로이드 워셜(Floyd-Warshall Algorithm) 컴퓨터 과학에서 플로이드-워셜 알고리즘(Floyd-Warshall Algorithm)은 변의 가중치가 음이거나 양인 (음수 사이클은 없는) 가중 그래프에서 최단 경로들을 찾는 알고 chanhhh.tistory.com 중간노드를 거쳐서 갈 수 있는 경우를 고려하여 3중 for문으로 코드를 작성합니다. import Foundation var n = Int(readLine()!)! var cost = Array(repeating: Array(repeating: 987654321, count: n), count: n) for _ in 0..
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 -
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