Hashing λμ μ ν΅ν μκ° λ³΅μ‘λ O(nΒ²)μμ O(n)μΌλ‘μ μ΅μ ν μ λ΅
π How to Solve Arrays and Hashing Problems in Data Structure?
AI μμ½
Context
λ°°μ΄ κΈ°λ° λ°μ΄ν° μ²λ¦¬ μ λ¨μ μν λ° μ€λ³΅ νμμΌλ‘ μΈν μ±λ₯ μ ν λ°μ. νΉν λ°μ΄ν° κ·λͺ¨ μ¦κ°μ λ°λΌ Brute force λ°©μμ μκ° λ³΅μ‘λκ° κΈ°νκΈμμ μΌλ‘ μ¦κ°νλ νκ³ μ‘΄μ¬.
Technical Solution
- Hashing ꡬ쑰λ₯Ό νμ©ν Key-Value λ§€νμΌλ‘ μμ νμ μκ°μ μμλ‘ λ¨μΆ
- Two-pointer λ° Sliding Window κΈ°λ²μ μ μ©ν ν¨μ¨μ μΈ λ°°μ΄ Traversal μ€κ³
- Complement κ³μ° λ°©μμ ν΅ν λ¨μΌ 루ν λ΄ Pair νμ λ‘μ§ κ΅¬ν
- Prefix Sum μ΅μ νλ‘ λΆλΆ λ°°μ΄ ν©κ³ κ³μ°μ μκ° λ³΅μ‘λ κ°μ
- unordered_map λ° unordered_setμ ν΅ν κ³ μ Lookup λ° μ€λ³΅ μ κ±° λ©μ»€λμ¦ κ΅¬μΆ
Impact
- μκ° λ³΅μ‘λ: O(nΒ²) β O(n)μΌλ‘ κ°μ
- κ³΅κ° λ³΅μ‘λ: O(n) μΆκ° ν λΉμ ν΅ν νμ μ±λ₯ κ·Ήλν
Key Takeaway
λ°μ΄ν°μ λΉλμ μΈ‘μ μ΄λ λΉ λ₯Έ κ²μμ΄ νμν κ²½μ° κ³΅κ° λ³΅μ‘λλ₯Ό ν¬μνμ¬ μκ° λ³΅μ‘λλ₯Ό μ΅μ ννλ Trade-off μ λ΅μ μ€μμ± νμΈ.
μ€μ² ν¬μΈνΈ
1. 'Frequency', 'Duplicate', 'Fast Lookup' ν€μλ μλ³ μ HashMap/HashSet μ°μ κ²ν
2. Brute force μ κ·Όλ²μΌλ‘ λ‘μ§ κ²μ¦ ν μκ°/κ³΅κ° λ³΅μ‘λ λΆμμ ν΅ν μ΅μ ν λ¨κ³ μ μ©
3. λ¬Έμ ν¨ν΄μ λ°λ₯Έ Two-pointer, Sliding Window, Prefix Sum μ μ© κ°λ₯μ± νλ¨