728x90 λ°μν π₯ Computer Science61 [Algorithm] μμμ κ΄λ ¨λ μκ³ λ¦¬μ¦(feat. μλΌν μ€ ν λ€μ€μ 체) μλ νμΈμ Foma π» μ λλ€! μκ³ λ¦¬μ¦ λ¬Έμ λ₯Ό νλ€ λ³΄λ©΄ μμλ₯Ό μ°Ύμν νλ μ νμ΄ λ§μλ°μ. μμμ κ°―μλ₯Ό μ°ΎμμΌ ν λ, μμμΈμ§ μλμ§ λΆλ³ν΄μΌ ν λ λ± ν¨μ¨μ μΈ μκ³ λ¦¬μ¦μ΄ νμν©λλ€. μ€λμ μ νν μκ³ λΉ λ₯΄κ² μ°ΎκΈ° μν΄μ κΈμ μ 리ν΄λ³΄λ €κ³ ν©λλ€. λ°λ‘ μμν κ²μ~! κΈ°μ‘΄μ μμλ₯Ό μ°Ύλ λ°©λ² κΈ°μ‘΄μ μμλ₯Ό μ°Ύλ λ°©λ²μ kλΌλ μκ° μλ€λ©΄ λ¨μνκ² 2λΆν° nκΉμ§ kλ‘ λλ μ λλμ΄ λ¨μ΄μ§λ μ«μμ κ°―μλ₯Ό νλ³νλ©΄ λκ² μ£ ? νμ§λ§ μ΄λ° λ°©λ²μ μ«μκ° μ»€μ§λ©΄ 컀μ§μλ‘ λΉν¨μ¨μ μ΄κΈ° λλ¬Έμ μκ°μ΄ μ€λ κ±Έλ¦¬κ² λ©λλ€. κ·Έλ¬λ―λ‘ ν¨μ¨μ μΈ λ°©λ²μ μ¬μ©ν΄μΌ νλλ°μ. μλΌν μ€ ν λ€μ€μ 체 λ¨Όμ 2λΆν° nκΉμ§μ ꡬκ°μμ μμμ κ°―μλ, μ΄λ€ μμκ° μλμ§ νμΈνκΈ° μν΄μ "μλΌν μ€ ν λ€μ€μ 체"λ₯Ό μκ³ λ¦¬μ¦μ.. 2022. 1. 19. [Algorithm] λμ κ³νλ²(Dynamic Programming)μ΄λ? μλ νμΈμ Foma π» μ λλ€! κ·Έ λμ μκ³ λ¦¬μ¦ λ¬Έμ λ₯Ό νλ©΄μ λμ κ³νλ² κ΄λ ¨λ λ¬Έμ κ° λμ€λ©΄ μ΄λ €μμ κ²ͺκ³€ νλλ°μ.. μ€λμ λμ κ³νλ²μ λν΄μ μ λλ‘ μ 리λ₯Ό ν΄λ³΄λ €κ³ ν©λλ€. λ°λ‘ μμν κ²μ! λμ κ³νλ²(Dynamic Programming)μ΄λ? λ€μ΄λλ―Ή νλ‘κ·Έλλ°μ 1950λ λ λ―Έκ΅μ μνμμΈ λ¦¬μ²λ λ²¨λ§¨μ΄ μ΅μ ν λ¬Έμ (Optimization Problem)λ₯Ό ν΄κ²°νκΈ° μν΄μ κ³ μλμλ€. 볡μ‘ν λ¬Έμ λ₯Ό κ°λ¨ν μ¬λ¬ κ°μ λ¬Έμ λ‘ λλμ΄ νΈλ λ°©λ²μ λ§νλ©° μ΄κ²μ λΆλΆ λ¬Έμ λ°λ³΅κ³Ό μ΅μ λΆλΆ ꡬ쑰λ₯Ό κ°μ§κ³ μλ μκ³ λ¦¬μ¦μ μΌλ°μ μΈ λ°©λ²μ λΉν΄ λμ± μ μ μκ° λ΄μ ν λ μ¬μ©νλ€. - μν€ λ°±κ³Ό - μ¦, λΆν μ 볡 μκ³ λ¦¬μ¦κ³Ό κ°μ΄ ν° λ¬Έμ λ₯Ό μκ² μͺΌκ°μ λ¬Έμ λ₯Ό ν΄κ²°ν΄ λκ°λ μκ³ λ¦¬μ¦μ λλ€. λ€.. 2021. 12. 9. [Data Structure] B-Treeλ? μλ νμΈμ Foma π» μ λλ€! μ€λμ νΈλ¦¬ μλ£κ΅¬μ‘° μ€ κ· ν λνμ (μ΄λ¦ μμ²΄κ° Balanced - Tree)μΈ B-Treeμ λν΄ μμλ³΄κ² μ΅λλ€. λ°λ‘ μμν κ²μ~ B-Treeμ λ°°κ²½ B-νΈλ¦¬(B-tree)λ λ°μ΄ν°λ² μ΄μ€μ νμΌ μμ€ν μμ λ리 μ¬μ©λλ νΈλ¦¬ μλ£κ΅¬μ‘°μ μΌμ’ μΌλ‘, μ΄μ§ νΈλ¦¬λ₯Ό νμ₯ν΄ νλμ λ Έλκ° κ°μ§ μ μλ μμ λ Έλμ μ΅λ μ«μκ° 2λ³΄λ€ ν° νΈλ¦¬ ꡬ쑰μ΄λ€. - μν€ λ°±κ³Ό - μ¦, μ΄μ§ νΈλ¦¬λ₯Ό μ‘°κΈ λ ν¨μ¨μ μΌλ‘ νμ₯ν μλ£κ΅¬μ‘°μμ! μ΄μ§ νμ νΈλ¦¬λ μ΅μ μ κ²½μ° O(n)μ μκ° λ³΅μ‘λλ₯Ό κ°κΈ° λλ¬Έμ κ·Έκ²μ μ‘°κΈ λ ν¨μ¨μ μΌλ‘ λ§λ κ²μ΄ O(logn)μ μκ° λ³΅μ‘λλ₯Ό κ°λ AVL νΈλ¦¬μμ΅λλ€. νμ§λ§ λ§μ½ 2μ²λ§κ°μ λ°μ΄ν°κ° μλ€λ©΄ log20,000,000 = 24 μ¦, μ΅λ 2.. 2021. 12. 6. [Data Structure] AVL νΈλ¦¬ ꡬνν΄λ³΄κΈ° (feat. Swift) μλ νμΈμ Foma π» μ λλ€! μ λ² μκ°μ AVL νΈλ¦¬κ° λμ§ μ΄λ‘ μ λν΄ μμ보μλλ°μ. (νΉμ μ보μ λΆλ€μ μ¬κΈ° μμ νμΈν΄μ£ΌμΈμ!) μ€λμ AVL νΈλ¦¬λ₯Ό μ§μ ꡬνν΄λ³΄λ €κ³ ν©λλ€. λ°λ‘ μμν κ²μ~ AVLNode κΈ°λ³Έμ μΌλ‘ μ΄μ§νμνΈλ¦¬μ λ Έλμ λκ°μ§λ§ μΌμͺ½κ³Ό,μ€λ₯Έμͺ½ μμμ λμ΄μ λ°Έλ°μ€ ν©ν°λ₯Ό μΈ‘μ ν λ³μλ₯Ό λ°λ‘ λ§λ€μ΄μμ΅λλ€. class AVLNode { var value:T var leftChild:AVLNode? var rightChild:AVLNode? var height:Int = 0 var leftHeight:Int { return leftChild?.height ?? -1 } var rightHeight:Int { return rightChild?.height ?? -1 } var.. 2021. 12. 6. [Data Structure] AVL(Adelson-Velsky and Landis) νΈλ¦¬λ? μλ νμΈμ Foma π» μ λλ€! μ€λμ μ λ²μ μ 리νλ μ΄μ§ νμ νΈλ¦¬λ₯Ό λ μ κ·Έλ μ΄λ(?)ν μλ£κ΅¬μ‘°μΈ AVL νΈλ¦¬μ λν΄μ μμ보λλ‘ νκ² μ΅λλ€. (νΉμ μ΄μ§ νμ νΈλ¦¬μ λν΄ λͺ¨λ₯΄μλ λΆλ€μ μ¬κΈ° μμ λ³΄κ³ μμ£ΌμΈμ!) λ°λ‘ μμν κ²μ~ AVL(Adelson-Velsky and Landis) νΈλ¦¬λ? π€ μ»΄ν¨ν° κ³Όνμμ AVL νΈλ¦¬(λ°λͺ μμ μ΄λ¦μΈ Adelson-Velsky and Landisμμ λ°μ¨ μ΄λ¦)λ μ€μ€λ‘ κ· νμ μ‘λ μ΄μ§ νμ νΈλ¦¬μ΄λ€. μ€μ€λ‘ κ· νμ μ‘λ λ°μ΄ν° ꡬ쑰 μ€ μ²μμΌλ‘ λ°λͺ λμλ€. AVL νΈλ¦¬μμ, λ μμ μλΈνΈλ¦¬μ λμ΄λ νμ μ΅λ 1λ§νΌ μ°¨μ΄λλ€. λ§μ½ μ΄λ€ μμ μμ λμ΄ μ°¨μ΄κ° 1λ³΄λ€ μ»€μ§λ©΄ μ΄ μμ±μ μ μ§νκΈ° μν΄μ μ€μ€λ‘ κ· νμ μ‘λλ€. - μν€ λ°±κ³Ό - μ¦, .. 2021. 12. 1. [Data Structure] μ΄μ§ νμ νΈλ¦¬(Binary Search Tree) ꡬνν΄λ³΄κΈ° (feat.Swift) μλ νμΈμ Foma π» μ λλ€! μ λ² μκ°μ μ΄μ§ νμ νΈλ¦¬κ° λμ§ μ΄λ‘ μ λν΄ μμ보μλλ°μ. μ€λμ μ΄μ§ νμ νΈλ¦¬λ₯Ό μ§μ ꡬνν΄λ³΄λ €κ³ ν©λλ€. λ°λ‘ μμν κ²μ~ BSTNode μ΄μ§ νμ νΈλ¦¬μ λ Έλλ₯Ό λ§λ€μ΄ μ£Όκ² μ΅λλ€. λ Έλλ κ°,μΌμͺ½,μ€λ₯Έμͺ½ μμμ λ Έλ μ 보λ₯Ό κ°μ§κ³ μμ΅λλ€. class BSTNode { var value:T var leftChild:BSTNode? var rightChild:BSTNode? init(value:T) { self.value = value } } Binary Search Tree μ΄μ§ νμ νΈλ¦¬μ μ΅μλ¨ κ°μ κ°μ§ rootλ₯Ό νλ‘νΌν°λ‘ μ μνμ΅λλ€. struct BinarySearchTree { var root:BSTNode? Insert public mutatin.. 2021. 11. 18. [Data Structure] μ΄μ§ νμ νΈλ¦¬(Binary Search Tree)λ? μλ νμΈμ Foma π» μ λλ€! μ€λμ νΈλ¦¬ μλ£κ΅¬μ‘° μ€ ν¨μ¨μ μΈ κ²μ,μ½μ ,μμ λ₯Ό ν μ μλ μ΄μ§ νμ νΈλ¦¬μ λν΄μ μμλ³΄κ² μ΅λλ€. λ°λ‘ μμν κ²μ~ μ΄μ§ νΈλ¦¬(Binary Tree)λ? π€ μ΄μ§ νμ νΈλ¦¬λ μ΄μ§ νΈλ¦¬ μλ£κ΅¬μ‘°λ‘ λμ΄μκΈ° λλ¬Έμ λ¨Όμ μ΄μ§ νΈλ¦¬κ° λμ§μ λν΄ μμλ³΄κ² μ΅λλ€. μ΄μ§ νΈλ¦¬λ κ°κ°μ λ Έλκ° μ΅λ λ κ°μ μμ λ Έλλ₯Ό κ°μ§λ νΈλ¦¬ μλ£ κ΅¬μ‘°λ‘, μμ λ Έλλ₯Ό κ°κ° μΌμͺ½ μμ λ Έλμ μ€λ₯Έμͺ½ μμ λ ΈλλΌκ³ νλ€.... - μν€ λ°±κ³Ό - μ¦, λ Έλλ§λ€ μμμ΄ 2κ° μ΄νμΈ νΈλ¦¬λ₯Ό λ§ν©λλ€. μλ κ·Έλ¦Όμ²λΌ μ΄λ£¨μ΄μ§ νΈλ¦¬λ₯Ό λ§ν©λλ€. (μμμ΄ μμ΄λ λκ³ , νλμ¬λ λκ³ , λ κ°μ¬λ λ©λλ€.) μ΄μ§ νμ νΈλ¦¬(Binary Search Tree)λ? π§ μ΄μ§ νμ νΈλ¦¬λ λ€μκ³Ό κ°μ μ.. 2021. 11. 17. [Data Structure] ν΄μ¬ ν μ΄λΈ(Hash Table) ꡬνν΄λ³΄κΈ°(feat. Swift) μλ νμΈμ Foma π» μ λλ€! μ€λμ μ λ² κΈμμ ν΄μ¬ ν μ΄λΈμ μ΄λ‘ μ μ΄μ΄μ μ§μ ꡬνν΄ λ³΄λ €κ³ ν©λλ€! (νΉμ μ λ² κΈμ μλ³΄μ ¨λ€λ©΄ μ¬κΈ° λ₯Ό ν΅ν΄μ λ³΄κ³ μμ£ΌμΈμ~) λ°λ‘ μμν κ²μ~ HashTable λ¨Όμ μ λ ν΄μ¬ ν¨μλ₯Ό Digit Folding μκ³ λ¦¬μ¦μ μ΄μ©ν΄μ λ§λ€ κ²μ΄κΈ° λλ¬Έμ keyκ°μ StringμΌλ‘ μ€μ νμ΅λλ€. λν μΆ©λμ΄ λ¬μ λ ν΄κ²° λ°©λ²μΌλ‘ Chaining κΈ°λ²μ μ¬μ©νμμ§λ§ μ°κ²° 리μ€νΈ λμ λ°°μ΄μ μ¬μ©νμ΅λλ€. μλμ κ°μ΄ typealiasλ‘ λ³μΉμ μ€μ ν΄μ£Όκ³ λ²ν·μ μ΄μ€λ°°μ΄λ‘ μ μΈνμ΅λλ€. public struct HashTable { public typealias Key = String private typealias Element = (key:Key,value:Val.. 2021. 11. 16. [Data Structure] ν΄μ¬ ν μ΄λΈ(Hash Table)μ΄λ? (feat. μ΄λ‘ ) μλ νμΈμ Foma π» μ λλ€! μ€λμ μ°λ¦¬κ° μμ£Ό ννκ² μ¬μ©νκ³ μλ ν΄μ¬ ν μ΄λΈ, Swiftλ‘ λ§νλ©΄ λμ λ리μ λν΄μ μμλ³Ό κ±°μμ! μ΄λ―Έ ꡬνλμ΄ μλ μ½λλ‘ μ½κ² μ¬μ©νλλ° μ§μ ꡬννλ €κ³ νλ μ§μ§ 볡μ‘νλλΌκ΅¬μ. κ·Έλμ μ€λμ ν΄μ¬ ν μ΄λΈμ λν΄μ μ 리ν΄λ³΄λ €κ³ ν©λλ€! λ°λ‘ μμν κ²μ~ ν΄μ¬ ν μ΄λΈ(Hash Table)μ΄λ? μ μλ μλμ κ°μ΅λλ€. ν΄μ ν μ΄λΈμ μ»΄ν¨ν μμ ν€λ₯Ό κ°μ 맀νν μ μλ ꡬ쑰μΈ, μ°κ΄ λ°°μ΄ μΆκ°μ μ¬μ©λλ μλ£ κ΅¬μ‘°μ΄λ€. ν΄μ ν μ΄λΈμ ν΄μ ν¨μλ₯Ό μ¬μ©νμ¬ μμΈ(index)μ λ²ν·(bucket)μ΄λ μ¬λ‘―(slot)μ λ°°μ΄λ‘ κ³μ°νλ€. - μν€ λ°±κ³Ό - μ¦, keyμ valueλ₯Ό μ¬μ©ν΄μ λ°μ΄ν°λ₯Ό μ μ₯νλ μλ£κ΅¬μ‘°μ λλ€. keyκ°μΌλ‘ valueλ₯Ό ν λ²μ μ°Ύμ .. 2021. 11. 15. [Algorithm] ν΅ μ λ ¬(Quick Sort)λ? (feat. Swift) μλ νμΈμ Foma π» μ λλ€! μ€λμ λλμ΄ μ λ ¬ μκ³ λ¦¬μ¦μμ λ§ κ·Έλλ‘ λ§€μ° λΉ λ₯Έ μνμκ°μ κ°μ§ ν΅ μ λ ¬μ λν΄μ μμλ³΄λ €κ³ ν©λλ€! λ°λ‘ μμν κ²μ~ ν΅ μ λ ¬(Quick Sort)μ΄λ? π§ ν΅ μ λ ¬(Quicksort)μ μ°°μ€ μ€ν°λ 리μ²λ νΈμ΄κ° κ°λ°ν μ λ ¬ μκ³ λ¦¬μ¦μ΄λ€. λ€λ₯Έ μμμμ λΉκ΅λ§μΌλ‘ μ λ ¬μ μννλ λΉκ΅ μ λ ¬μ μνλ€. - μν€ λ°±κ³Ό - (μ°Έκ³ λ‘ λ¦¬μ²λ νΈμ΄κ° ν΅ μ λ ¬μ κ°λ°νμ λΉμ λμ΄λ 26μ΄μ΄λΌκ³ νλ€μ...) ν©λ³ μ λ ¬κ³Ό κ°μ΄ λΆν μ 볡 μκ³ λ¦¬μ¦μ μνκ³ νκ· μ μΌλ‘ λ§€μ° λΉ λ₯Έ μνμλλ₯Ό μλν©λλ€. ν΅ μ λ ¬ κ³Όμ π¨ ν΅ μ λ ¬μ νκΈ° μν΄μ νΌλ΄(Pivot)μ΄ ν΅μ¬μ΄ λλλ°μ. μ¬κΈ°μ νΌλ΄μ μ΄λ€ κ²μΌκΉμ? νΌλ΄μ λ°λ‘ κΈ°μ€μ λλ€. νΌλ΄μ κ°μ₯ 첫 λ²μ§Έ μΈλ±μ€λ₯Ό μ νν μλ .. 2021. 10. 25. [Algorithm] ν μ λ ¬(HeapSort)μ΄λ? (feat.Swift) μλ νμΈμ Foma π» μ λλ€! μ λ² μκ°μ νμ΄λ μλ£κ΅¬μ‘°μ λν΄μ μμ보μλλ°μ. (νΉμλΌλ μ보μ λΆμ μ¬κΈ° μμ λ³΄κ³ μμ£ΌμΈμ!) μ€λμ νμ μ΄μ©ν΄μ μ λ ¬μ νλ νμνΈμ λν΄μ μμλ³΄λ €κ³ ν©λλ€! λ°λ‘ μμν κ²μ~ ν μ λ ¬((HeapSort)μ΄λ? π§ ν μ λ ¬(Heap sort)μ΄λ μ΅λ ν νΈλ¦¬λ μ΅μ ν νΈλ¦¬λ₯Ό ꡬμ±ν΄ μ λ ¬μ νλ λ°©λ²μΌλ‘μ, λ΄λ¦Όμ°¨μ μ λ ¬μ μν΄μλ μ΅λ νμ ꡬμ±νκ³ μ€λ¦μ°¨μ μ λ ¬μ μν΄μλ μ΅μ νμ ꡬμ±νλ©΄ λλ€. - μν€ λ°±κ³Ό - μ¦, νμ μ΄μ©ν΄μ μ λ ¬μ νλ λ°©μμ΄μμ. ν μ λ ¬ κ³Όμ π¨ ν μ λ ¬ κ³Όμ μ νμμ μμ λ₯Ό ꡬνν λμ λκ°μμ. μμ κ³Όμ μ΄ μλμ κ°μλ°μ. λͺ¨λ λ Έλλ₯Ό μμ νκ³ λ°°μ΄μ μ°¨λ‘λ‘ μκ²λλ©΄ μ΄λ»κ² λ κΉμ? μ΅λνμ΄λΌλ©΄ κ°μ₯ ν° μ«μκ° μ°¨λ‘.. 2021. 10. 19. [Data Structure] ν(Heap)μ΄λ? (feat. Swift) μλ νμΈμ Foma π» μ λλ€! μμ¦ μκ³ λ¦¬μ¦μ 곡λΆνκ³ μλλ° κ·Έ μ€ νμνΈμ λν΄ μκ² λμμ΅λλ€. νμνΈλ₯Ό νλ €λ©΄ νμ΄λΌλ μλ£κ΅¬μ‘°κ° νμνλλΌκ΅¬μ. κ·Έλμ νμ΄ λ¬΄μμ΄κ³ μ΄λ»κ² ꡬννλμ§μ λν΄ μ 리νλ €κ³ ν©λλ€! λ°λ‘ μμν κ²μ~ μμ μ΄μ§νΈλ¦¬(Complete Binary Tree)λ? β λ¨Όμ νμ λν΄ μμ보기 μ μ μμ μ΄μ§νΈλ¦¬μ λν΄μ μμλ³΄κ² μ΅λλ€. μ΄μ λ νμ΄ μμ μ΄μ§νΈλ¦¬λ‘ λμ΄μκΈ° λλ¬Έμ λλ€. μμ μ΄μ§ νΈλ¦¬μμ, λ§μ§λ§ λ 벨μ μ μΈνκ³ λͺ¨λ λ λ²¨μ΄ μμ ν μ±μμ Έ μμΌλ©°, λ§μ§λ§ λ 벨μ λͺ¨λ λ Έλλ κ°λ₯ν ν κ°μ₯ μΌμͺ½μ μλ€. λ§μ§λ§ λ 벨 h μμ 1λΆν° 2h-1 κ°μ λ Έλλ₯Ό κ°μ§ μ μλ€. μμ μ΄μ§ νΈλ¦¬λ λ°°μ΄μ μ¬μ©ν΄ ν¨μ¨μ μΌλ‘ νν κ°λ₯νλ€. - μν€ λ°±κ³Ό - μ¦, 맨 λ§μ§λ§.. 2021. 10. 15. μ΄μ 1 2 3 4 5 6 λ€μ 728x90 λ°μν