๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (454)
Bibi's DevLog ๐ค๐
[Swift] ๊ทธ๋ํ์ ํ์ ์๊ณ ๋ฆฌ์ฆ DFS/BFS ๊ฐ์ฅ ๋์์ด ๋ ๊ธ.. https://nareunhagae.tistory.com/56 ๐ '์ด๊ฒ์ด ์ฝ๋ฉ ํ ์คํธ๋ค' ์ฑ ๋ ํจ๊ป ์ฐธ๊ณ ํด ์์ฑํ์ต๋๋ค. ๊ทธ๋ํ Graph ๊ทธ๋ํ์์๋ ๋ชจ๋ ๊ฐ์ฒด๋ ์ ์ (๋ ธ๋)๋ก ๋ํ๋ด๊ณ , ๋ชจ๋ ๊ด๊ณ๋ ๊ฐ์ ์ผ๋ก ๋ํ๋ธ๋ค. ๋ ธ๋ Node / ์ ์ Vertex ๊ทธ๋ํ์์ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ๋จ์. (๊ทธ๋ฆผ์์์ ๋๊ทธ๋ผ๋ฏธ = ๋ ธ๋) ๋ ๋ ธ๋๊ฐ ์ธ์ ํ๋คadjacent : ๋ ๋ ธ๋๊ฐ ๊ฐ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์์ ์๋ฏธ ๊ฐ์ Edge ๋ ธ๋ ์ฌ์ด๋ฅผ ์๋ ์ . ๊ทธ๋ํ ํ์ : ํ๋์ ๋ ธ๋๋ฅผ ์์์ผ๋ก ๋ค์์ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๋ ๊ฒ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์ค 1์ฐจ์ ๋ฐฐ์ด, 2์ฐจ์ ๋ฐฐ์ด ํ์ ๋ฌธ์ ๋ฅผ ๊ทธ๋ํ ํํ๋ก ์๊ฐํ๋ฉด ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํ ์ ์๋ค. ๊ทธ๋ํ ํ..
https://github.com/bibi6666667/a-swift-tour/blob/main/bibi/bibi.md GitHub - bibi6666667/a-swift-tour Contribute to bibi6666667/a-swift-tour development by creating an account on GitHub. github.com ์ค์ํํธ ๊ณต์ ๋ฌธ์์ธ The Swift Programming Language Guide ์ค ์ผ๋ถ์ธ, WELCOME TO SWIFT LANGUAGE GUIDE - The Basics ์ ํ๊ตญ์ด ๋ฒ์ญ๋ณธ์ ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ํ์ตํ๋ฉฐ ๋ฒ์ญํ ๋ฌธ์๋ผ ์ด์ํ ๋ถ๋ถ ๋ฐ ์ค์ญ์ด ์์ ์ ์์ต๋๋ค. ๋ฐ๊ฒฌ ํ ์๋ ค์ฃผ์๋ฉด ํ์ธ ํ ์์ ํ๊ฒ ์ต๋๋ค๐
[๋ฐฑ์ค 10539] ์๋น์ด์ ์์ด 10539๋ฒ: ์๋น์ด์ ์์ด ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ์์ด์ด ์์ด A๊ฐ ์๋, ์์ด B๋ผ๋ ๊ฒ ์ด ํฌ์ธํธ์ด๋ค. ํ๊ท ์์ ๊ทธ๋๋ก ์ฐ๋ฉด ์๋๊ณ , ํ๊ท ์์ ๋ณํํด์ผ ํ๋ค. ์์ด B์ ๊ธธ์ด๊ฐ 4์ด๊ณ ์ฒซ ์์๊ฐ 3์ด๋ผ๋ฉด, ์์ด A์ ์ฒซ ์์๋ 3์ด๋ค. (์ฒซ ์์๋ 1๋ก ๋๋๋ฏ๋ก ๊ฐ์ด ๊ฐ์) ์๋ฅผ ๋ค์ด ์์ด B์ ๋ ๋ฒ์งธ ์์๊ฐ 2๋ผ๋ฉด, ์ด ๊ฐ์ (์์ด A์ ์ฒซ ์์ + ์์ด A์ ๋ ๋ฒ์งธ ์์) / 2 ์ ๊ฐ์์ผ ํ๋ค. ์ด๋ ์์ด A์ ์ฒซ ๋ฒ์งธ ์์๊ฐ 3์ด๋ฏ๋ก, ์์ด A์ ๋ ๋ฒ์งธ ์์๋ 2 * 2 - 3 = 1์ด ๋๋ค. ๋ฐ๋ผ์ ์์ด A์ n๋ฒ์งธ ์์ = (์์ด B์ n๋ฒ์งธ ์์ * n) - ์์ด A์ n-1 ๋ฒ์งธ ์์๊น์ง์ ์ดํฉ ์ด ๋๋ค. ํ์ด let count = Int(read..
Data Structure in Swift (Queue) - Part 5 swift-algorithm-club/Queue at master · kodecocodes/swift-algorithm-club ์ด ๊ธ์ ์์ ๊ธ๋ค์ ์ฐธ๊ณ ํ์ฌ ์์ฑ๋์์ต๋๋ค. Queue ํ ํ๋ ๋๊ธฐ์ด์ ๋ปํ๋ค. ์ฌ๋๋ค์ด ๋ฒ์ค๋ฅผ ํ๊ธฐ ์ํด ์ค์ ์ ๊ฒ์ ์๊ฐํ๋ฉด ๋๋ค - ๋จผ์ ์ค์ ์ ์ฌ๋๋ถํฐ ์์๋๋ก ๋ฒ์ค์ ํ๋ค. ์ ํ ์๋ฃ๊ตฌ์กฐ ์ฝ์ ๋ฐ ์ญ์ : ์ ์ ์ ์ถ, ์ฆ FIFO(First In, First Out)๋ก ๋์ํ๋ค. ์คํ๊ณผ์ ์ฐจ์ด์ : ํ๋ ๊ฐ์ฅ ์์ ์ ๋ค์ด์จ ๊ฒ๋ถํฐ ์ญ์ ํ๊ณ , ์คํ์ ๊ฐ์ฅ ์ต๊ทผ์ ๋ค์ด์จ ๊ฒ๋ถํฐ ์ญ์ ํ๋ค. Queue์ ์ฐ์ฐ์ Enqueue : ๋งจ ๋ค์ ์ ์์ ์ฝ์ Dequeue : ๋งจ ์์ ์์ ์ญ์ Front..
Data Structure in Swift (Stack) - Part 3 Swift Algorithm Club: Swift Stack Data Structure ์ด ๊ธ์ ์์ ๋ ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด์ ๋ฐ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์คํ Stack ์คํ์ ์์๋ฅผ ์ ํ(linear)์ผ๋ก ์ ๋ฆฌํ๊ฒ ํด ์ฃผ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ์คํ์ ๊ธฐ๋ณธ์ ์ผ๋ก LIFO(Last In First Out) ๋งค์ปค๋์ฆ์ ํตํด ์์๋ฅผ ์ฝ์ ํ๊ณ ์ญ์ ํฉ๋๋ค. ์ด๋ ๊ฐ์ฅ ๋์ค์ ๋ํด์ง ์์๊ฐ ๊ฐ์ฅ ๋จผ์ ์ญ์ ๋จ์ ์๋ฏธํฉ๋๋ค. ์คํ์ ์ฐ์ฐ ์คํ์ ๊ต์ฅํ ํ์ ๋ ๋ฒ์์ ์ฐ์ฐ์ ์ ๊ณตํ๋ค. push() : O(1). ์คํ์ ์๋ก์ด ์์๋ฅผ ์ฝ์ ํ๋ ์ฐ์ฐ pop() : O(1). ์คํ์ ๋งจ ์์ ์์๋ฅผ ์ญ์ ํ๋ ์ฐ์ฐ peek() : ์คํ์ ๋งจ ์์ ์์๊ฐ ๋ฌด์์ธ์ง ..
Queue๋ฅผ ๊ตฌํํ๋ ๋ค์ํ ๋ฐฉ์๋ค. Queue ๊ตฌํํ๊ธฐ - (1) ๋ฐฐ์ด ๊ฐ์ฅ ์ฝ์ง๋ง ๊ฐ์ฅ ์ถ์ฒํ์ง ์๋ ๋ฐฉ๋ฒ struct Queue: CustomStringConvertible { private var elements: [T] = [] public init() {} var isEmpty: Bool { elements.isEmpty } var peek: T? { elements.first } var description: String { if isEmpty { return "Queue is empty..." } return "---- Queue start ----\n" + elements.map({"\($0)"}).joined(separator: " -> ") + "\n---- Queue End ----..
๋ฐฐ์ด๋ก ๊ตฌํํ Swift์ Stack struct Stack { fileprivate var array: [Element] = [] var isEmpty: Bool { return array.isEmpty } var count: Int { return array.count } mutating func push(_ element: Element) { array.append(element) } mutating func pop() -> Element? { return array.popLast() } func peek() -> Element? { return array.last } } extension Stack: CustomStringConvertible { var description: String { le..
Data Structure in Swift (Linked List) - Part 2 ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๋ฌธ์๋ฅผ ๋ฒ์ญํด ์ ๋ฆฌํ ๋ฌธ์์ด๋ฉฐ, Data Structures & Algorithms in Swift, Chapter 6: Linked List ์ด ๋ฌธ์๋ฅผ ํจ๊ป ์ฐธ์กฐํ์ต๋๋ค. Linked List ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๋ ธ๋๋ฅผ ๊ธฐ๋ณธ ๋จ์๋ก ํ๋ ์ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ. ๋ ธ๋ : ๋ฐ์ดํฐ + ํฌ์ธํฐ ๋ฐ์ดํฐ : ํด๋น ๋ ธ๋์ ์ ์ฅ๋ ๊ฐ ํฌ์ธํฐ : ๋ค์ ๋ ธ๋์ ์์น์ ๋ํ ์ฐธ์กฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ์ฐ์์ ์ผ๋ก ์ ์ฅ๋์ง ์๋๋ค. ๋ฐฐ์ด์ฒ๋ผ, ์๋ธ์คํฌ๋ฆฝํธ๋ก ์์์ ์์์ ๊ทผํ ์ ์๋ค. (list[0] - ๋ถ๊ฐ๋ฅ) ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์๋ค Singly Linked List ๋จ๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ (๋จ์ผ ์ฐ๊ฒฐ ๋ฆฌ์คํธ) ๊ฐ ํญ๋ชฉ์ด ๋ค์ ๋ ธ๋์ ๋ํ ..