5/4 μ§ννλ μ€μννΈ λ°μ΄ν° ꡬ쑰μ μκ³ λ¦¬μ¦ μ± μ 3μ₯ 'μ€μννΈ κ³ κΈ λ°μ΄ν° ꡬ쑰μ νμ©' μ€ν°λ μ 리μ λλ€!
π 3μ₯ μμ½
3μ₯μμλ Swift κΈ°λ³Έ λ°μ΄ν° ꡬ쑰 μ€ Collections (Array, Dictionary, Set) μ νμ©ν΄μ λ€μν λ°μ΄ν° ꡬ쑰μ λν΄ μ€λͺ νκ³ Swift μ½λλ‘ μμ±νλ λ²μ νμ΅νμ΅λλ€! Stack(μ€ν), Queue(ν), Circular Buffer(μνλ²νΌ), Priority Queue(μ°μ μμ ν), Linked List(μ°κ²° λͺ©λ‘) μ΄λ κ² μ¬μ―κ°μ§λ₯Ό λ€λ£¨κ³ μκ³ , μ£Όμ λ ν¬κ² λ€μμ²λΌ λλ©λλ€.
- κΈ°λ³Έ λ°μ΄ν°κ΅¬μ‘° ꡬνμ μν νμ κ³Ό νλ‘ν μ½ μ€λͺ - Iterator, Sequence, Collection
- λ€μν λ°μ΄ν° ꡬ쑰μ λν μ€λͺ κ³Ό Swift λ‘ κΈ°λ³Έμ μΈ μ /μΆλ ₯ μ²λ¦¬ ꡬννκΈ°
- Swift λ‘ κ΅¬νν λ°μ΄ν° ꡬ쑰μ νλ‘ν μ½μ μΆκ°ν΄ Collections μ²λΌ μλνλλ‘ νκΈ°
βοΈ λ°μ΄ν° ꡬ쑰 μμ½
- Stack (μ€ν) : λμ€μ μ λ ₯λλ κ²μ΄ λ¨Όμ μΆλ ₯λλ LIFO λ°μ΄ν° ꡬ쑰, μ μλ₯Ό μλ κ²κ³Ό λΉμ·νλ€.
- Queue (ν) : λ¨Όμ μ λ ₯λλ κ²μ΄ λ¨Όμ μΆλ ₯λλ FIFO λ°μ΄ν° ꡬ쑰, μλΉ μ£Όλ¬Έ μμ νΉμ ν°λμ μ°¨λ€κ³Ό λΉμ·νλ€.
- Circular Buffer (μν λ²νΌ) : ν¬κΈ°κ° μ§μ λ FIFO λ°μ΄ν° κ΅¬μ‘°λ‘ Head index, Tail index λ κ°λ₯Ό μ΄μ©ν΄ μμκ³Ό λμ μ°κ²°νλ€. λ²νΌμ ν¬κΈ°κ° κ°λμ°¨λ©΄ μΈλ±μ€κ° μνλμ΄ κΈ°μ‘΄μ λ°μ΄ν°λ μλ‘μ΄ λ°μ΄ν°λ‘ λ³κ²½λλ€.
- Priority Queue (μ°μ μμ ν) : Queue μ λΉμ·νμ§λ§, κ°κ°μ μμλ μ°μ μμ κ°μ μ§λλ€. μ°μ μμλ₯Ό κΈ°λ°μΌλ‘ μ λ ¬λμ΄ μμΌλ©°, κ°μ λΉΌλΌ λ, λ λμ μ°μ μμλ₯Ό μ§λ μμκ° λ¨Όμ νμμ λΉ μ Έλμ¨λ€.
- Linked List (μ°κ²° λͺ©λ‘) : μ°κ²°λ κ°μ μ§λ λ°°μ΄κ³Ό μ μ¬νμ§λ§, κ°κ°μ μμκ° μ΄μ / λ€μ μμμ μ£Όμλ₯Ό κ°μ§κ³ μλ€. μμμ μ½μ κ³Ό μμ κ° λΉ λ₯΄λ€λ μ₯μ μ΄ μλ€.
π€ μ΄λ €μ λ λΆλΆ / ν·κ°λ Έλ λΆλΆ
1. Collections μ ν΄λΉνλ Array, Dictionary λ±μ μ¬μ©ν΄λ΄€μ§λ§, for ... in μνλ¬Έκ³Ό μλΈμ€ν¬λ¦½νΈ κΈ°λ₯μ΄ μ΄λ»κ² μλλλμ§ νμΈν΄λ³Έμ μ΄ μμλ€. 3μ₯μμλ μ΄λ₯Ό κ°λ₯νλλ‘ ν νμ κ³Ό νλ‘ν μ½μ λν΄ μ€λͺ νκ³ μμκΈ°μ μ΄λ ΅κ² λκ»΄μ‘λ€.
2. κ° λ°μ΄ν° κ΅¬μ‘°κ° μ΄λ μν©μμ μ μ©νκ² μ¬μ©λλμ§ μ€λͺ μ λ΄€μ§λ§, λͺ νν μ΄ν΄λμ§ λͺ»νλ€.
π‘ ν΄κ²°ν λ°©λ² / μΆκ° νμ΅
1. Iterator, Sequence, Collection νλ‘ν μ½μ λν΄ μ± κ³Ό ν¨κ» Apple 곡μλ¬Έμλ₯Ό μ°Έκ³ νλ©° νμ΅νλ€.
- Iterator λ IteratorProtocol νλ‘ν μ½μ λΆν©νλ νμ μ΄λ€. IteratorProtocol μ λͺ©μ μ next() λ©μλλ₯Ό ν΅ν΄ 컬λ μ μ λ°λ³΅ μνν μ μλλ‘ νλ κ²μ΄λ€.
- Sequence λ Sequence νλ‘ν μ½μ λΆν©νλ νμ μ΄λ€. Sequence λ for ... in μνλ¬ΈμΌλ‘ μμλ₯Ό λ°λ³΅ μνν μ μλ€.
- Collection μ Collection νλ‘ν μ½μ λΆν©νλ νμ μ΄λ€. Collection μ νΉμ μΈλ±μ€μ μμλ₯Ό μ κ·Όν μ μλ subscript λ₯Ό μ 곡νλ©°, startIndex, endIndex μμ±μ κ°μ§λ©°, νΉμ μΈλ±μ€μ κ°μ μ½μ ν μ μλ€.
2. μ± μ 2νλ λΆν°λ κ΄λ ¨ μκ³ λ¦¬μ¦ λ¬Έμ λ₯Ό νλ©΄μ μ΄λ€ κ²½μ°μ μ μ©λλμ§ νμΈν΄λ³΄λλ‘ νλ€.
π Swift λ‘ νΌ μ€ν/ν μκ³ λ¦¬μ¦