🐣(75)
-
[Swift] 누적 합 / Prefix Sum / Cumulative Sum
알고리즘 문제풀이에서의 누적 합은 말 그대로 구간의 누적합을 구하는 문제입니다. 누적 합 배열의 시작 인덱스위의 설명에서 배열 $A$의 시작 인덱스는 $1$로 사용했습니다. 그 이유는 $S[l-1]$ 때문입니다. 시작 인덱스가 $1$이면 $l$의 최솟값은 $1$이고, 여기서 $l-1$은 $0$입니다. 만약, 시작 book.acmicpc.net BOJ Book을 Swift 코드에 맞춰서 다시 읽어보고 이해해 보려고 합니다. int ans = 0; for i in l..
2024.03.06 -
[Swift] (자료구조) 해쉬 / Hash
Swift의 Hash (해시)와 관련 자료구조Swift는 Hashable 프로토콜과 이를 기반으로 하는 자료구조를 통해 해시 개념을 구현합니다. Swift의 해시 구조는 효율적인 데이터 검색, 삽입, 삭제를 위해 사용되며, 주로 Set과 Dictionary에서 활용됩니다.1. Swift의 해시(Hash) 개념Hashable 프로토콜Swift에서 해시 가능한 객체는 Hashable 프로토콜을 준수해야 합니다.Hashable은 객체를 고유의 해시 값(Hash Value)으로 변환할 수 있도록 지원합니다.사용 목적:객체를 딕셔너리(Dictionary)의 키로 사용하거나, 집합(Set)에서 중복 제거와 비교를 수행.핵심 메서드:hash(into:):객체의 해시 값을 계산.==:두 객체의 동등성을 비교.struc..
2024.03.06 -
14171 swift - Cities and States
[Swift] (자료구조) 해쉬 / Hash chanhhh.tistory.com 처음에 시간 제한이 2초라서 널널하게 보고 2중 for문을 돌렸다가 호되게 시간초과 맞고, 두번째는 저장부터 해시로 저장하자 했는데 중복 값때문에 호되게 틀렸습니다. 14171번: Cities and States To keep his cows intellectually stimulated, Farmer John has placed a large map of the USA on the wall of his barn. Since the cows spend many hours in the barn staring at this map, they start to notice several curious patterns. For exa..
2024.03.06 -
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