swift230 [Swift] ์ฐ์ ์์ ํ(Priority Queue) ๊ตฌํํ๊ธฐ ์ฐ์ ์์ ํ๋ ์์๊ฐ ์ฝ์ ๋ ๋๋ง๋ค ์ฐ์ ์์์ ๋ฐ๋ผ ์ ๋ ฌ๋๋ฉฐ, ๊ฐ์ฅ ๋์ ์ฐ์ ์์์ ์์๊ฐ ๋จผ์ ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ด์ ์ ๊ตฌํํ Heap์ ์ฌ์ฉํ์ฌ ์ฐ์ ์์ ํ๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค. ์๋๋ PriorityQueue ๊ตฌ์กฐ์ฒด๋ฅผ ์ ๋ค๋ฆญ์ผ๋ก ์ ์ํ ์ฝ๋์ ๋๋ค.struct PriorityQueue { private var heap: Heap var isEmpty: Bool { return heap.isEmpty } var count: Int { return heap.count } var peek: T? { return heap.peek } init(sort: @escaping (T, T) -> Bool) { he.. 2024. 9. 27. [Swift] ํ(Heap) ๊ตฌํํ๊ธฐ Heap์ ํธ๋ฆฌ ๊ธฐ๋ฐ์ ์๋ฃ๊ตฌ์กฐ๋ก, ํน์ ์ฐ์ ์์์ ๋ฐ๋ผ ์์๋ค์ ์ ๋ ฌํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. Heap์ ํฌ๊ฒ ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค. ์ต์ ํ์ ์์ ๊ฐ์ด ๋จผ์ ๋์ค๋๋ก ์ ๋ ฌํ๊ณ , ์ต๋ ํ์ ํฐ ๊ฐ์ด ๋จผ์ ๋์ค๋๋ก ์ ๋ ฌํฉ๋๋ค. ์ ๋ค๋ฆญ์ ์ด์ฉํด Heap ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ํ๊ณ ์ฃผ์ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค.struct Heap { private var elements: [T] = [] private let priorityFunction: (T, T) -> Bool var isEmpty: Bool { return elements.isEmpty } var count: Int { return elements.count } var p.. 2024. 9. 27. [Swift] Dequeue ๊ตฌํํ๊ธฐ Dequeue๋ ์์ชฝ ๋์์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๋ชจ๋ ๊ฐ๋ฅํ ์๋ฃ๊ตฌ์กฐ๋ก, ์ด๋ฅผ ํตํด ํ์ ์คํ์ ๊ธฐ๋ฅ์ ๋ชจ๋ ์ํํ ์ ์์ต๋๋ค. Dequeue๋ฅผ ๊ตฌ์กฐ์ฒด์ ๋ฐฐ์ด์ ์ด์ฉํด ๊ตฌํํ ์ ์์ต๋๋ค.์ ๋ค๋ฆญ์ ํ์ฉํ์ฌ Dequeue ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ํ๊ณ , ์ฃผ์ ๊ธฐ๋ฅ๋ค์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค. struct Deque { private var enqueue: [T] = [] // ๋ค์ชฝ์์ ์์๋ฅผ ์ถ๊ฐ/์ ๊ฑฐํ๋ ๋ฐฐ์ด private var dequeue: [T] = [] // ์์ชฝ์์ ์์๋ฅผ ์ถ๊ฐ/์ ๊ฑฐํ๋ ๋ฐฐ์ด var count: Int { return enqueue.count + dequeue.count } var isEmpty: Bool { return enque.. 2024. 9. 27. [Swfit] ํ(Queue) ๊ตฌํํ๊ธฐ Queue๋ฅผ ๊ตฌ์กฐ์ฒด์ ๋ฐฐ์ด์ ์ด์ฉํด ๊ตฌํํ ์ ์์ต๋๋ค.๋จผ์ ์ ๋ค๋ฆญ์ ํ์ฉํด Queue ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ํ๊ณ , ์ฃผ์ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค. struct Queue { private var queue: [T] = [] var isEmpty: Bool { return queue.isEmpty } var count: Int { return queue.count } var peek: T? { return queue.first } mutating func enqueue(_ element: T) { queue.append(element) } mutating func dequeue() .. 2024. 9. 27. [Swift] ์คํ(Stack) ๊ตฌํํ๊ธฐ Stack์ ๊ตฌ์กฐ์ฒด์ ๋ฐฐ์ด๋ก ๊ตฌํํ ์ ์์ต๋๋ค.๋จผ์ ์ ๋ค๋ฆญ์ ์ด์ฉํด Stack ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ํ๊ณ , ์ฃผ์ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค. struct Stack { private var stack: [T] = [] var isEmpty: Bool { return stack.isEmpty } var count: Int { return stack.count } var peek: T? { return stack.last } mutating func push(_ element: T) { stack.append(element) } mutating func pop() -> T? { .. 2024. 9. 27. [RxSwift] Observable Observable ์ด๋?Observable์ RxSwift์์ ๋ฐ์ดํฐ์ ์คํธ๋ฆผ์ ๋ํ๋ ๋๋ค. ๋จ์ํ ๋งํ์๋ฉด, Observable์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ ๋ฐฉ์ถํ ์ ์๋ ๊ฐ์ฒด์ ๋๋ค. ์ด๋ฌํ ๊ฐ๋ค์ ์ฌ์ฉ์ ์ ๋ ฅ, ๋คํธ์ํฌ ์์ฒญ ์๋ต, ํ์ผ ์ ์ถ๋ ฅ ๋ฑ ๋ค์ํ ์์ค์์ ๋ฐ์ํ ์ ์์ต๋๋ค. Observable์ ์ธ ๊ฐ์ง ์ ํ์ ์ด๋ฒคํธ๋ฅผ ๋ฐฉ์ถํ ์ ์๋๋ฐ, ์ด๋ next, error, completed์ ๋๋ค.nextObservable์ด ์๋ก์ด ๋ฐ์ดํฐ ์์๋ฅผ ๋ฐฉ์ถํ ๋ ๋ฐ์ํฉ๋๋ค.Observable์ ์ฌ๋ฌ ๊ฐ์ next ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํฌ ์ ์์ต๋๋ค.error์๋ฌ๊ฐ ๋ฐ์ํ์ ๋ ๋ฐฉ์ถ๋๋ฉฐ, ์ดํ์๋ ๋ ์ด์์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.completedObservable์ด ๋ชจ๋ ๋ฐ์ดํฐ ์์์ ๋ฐฉ์ถ์ ์๋ฃ.. 2024. 6. 7. ์ด์ 1 2 3 4 ยทยทยท 39 ๋ค์ ๋ฐ์ํ