โจ๏ธ Language/swift251 [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. [Swift] ์๋ ์ฐธ์กฐ ์นด์ดํธ ์๋ ์ฐธ์กฐ ์นด์ดํธ(ARC, Automatic Reference Counting)์ฑ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํด ์ฌ์ฉ์๋์ผ๋ก ์ฐธ์กฐ ํ์๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ์ ๊ฒฝ์ธ ํ์๊ฐ ์๊ณ ARC๊ฐ ์๋์ผ๋ก ์ฌ์ฉํ์ง ์๋ ์ธ์คํด์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ํด์งํน์ ๊ฒฝ์ฐ์ ARC์์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํด ์ฝ๋์ ํน์ ๊ด๊ณ์ ๋ํ ์ ๋ณด๋ฅผ ํ์๋ก ํจ์ฐธ์กฐ ํ์๋ ํด๋์ค ํ์ ์ ์ธ์คํด์ค์๋ง ์ ์ฉ๋๊ณ ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ ๋ฑ ๊ฐ ํ์ ์๋ ์ ์ฉ๋์ง ์์ ARC ๋์์๋ก์ด ํด๋์ค ์ธ์คํด์ค๋ฅผ ๋ง๋ค ๋ ๋ง๋ค ARC๋ ์ธ์คํด์ค ์ ๋ณด๋ฅผ ๋ด๋๋ฐ ํ์ํ ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฉ๋ชจ๋ฆฌ๋ ์ธ์คํด์ค์ ๋ํ ์ ๋ณด์ ๊ด๋ จ๋ ์ ์ฅ ํ๋กํผํฐ ๊ฐ์ ๊ฐ๊ณ ์์์ธ์คํด์ค๊ฐ ๋์ด์ ์ฌ์ฉ๋์ง ์์ ๋ ARC๋ ๊ทธ ์ธ์คํด์ค๊ฐ ์ฐจ์งํ๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์งํด ๊ณต๊ฐ์ ํ๋ณดAR.. 2024. 4. 2. ์ด์ 1 2 3 4 ยทยทยท 42 ๋ค์ ๋ฐ์ํ