νΌλλ‘ λμκ°κΈ°
Dev.toBackend
μλ¬Έ μ½κΈ°
O(1) Space λ§΅νμ ν΅ν μΈκ³μ΄ Lexicographical Sorting κ²μ¦ ꡬν
# π½ Verifying an Alien Dictionary (LeetCode 953)
AI μμ½
Context
νμ€ μνλ²³ μμκ° μλ μ¬μ©μ μ μ Orderλ₯Ό λ°λ₯΄λ λ¨μ΄ 리μ€νΈμ μ λ ¬ μν κ²μ¦ νμ. λ¨μ λ¬Έμ λΉκ΅λ‘λ λΆκ°λ₯ν μμμ μμ 체κ³(Custom Ranking) μ μ©μ΄ ν΅μ¬ κ³Όμ .
Technical Solution
- μνλ²³ 26μμ μΈλ±μ€ μμΉλ₯Ό μ μ₯νλ Fixed-size Array κΈ°λ°μ Character Ranking Map ꡬμΆ
- μΈμ ν λ λ¨μ΄(Adjacent Pair)λ§ λΉκ΅νμ¬ μ 체 리μ€νΈμ μ λ ¬ μνλ₯Ό νλ³νλ ν¨μ¨μ 루ν μ€κ³
- λ¬Έμ κ° λΆμΌμΉ λ°μ μ Mapμ μ μ₯λ Index κ°μ λΉκ΅νμ¬ μ ν κ΄κ³λ₯Ό μ¦μ νλ³νλ λ‘μ§ μ μ©
- κ³΅ν΅ μ λμ¬(Prefix)λ₯Ό κ°μ§ λ¨μ΄ μμ λν΄ μ§§μ λ¨μ΄κ° λ¨Όμ μ€λ Lexicographical κ·μΉμ ν΅ν μμΈ μ²λ¦¬
- λΆνμν μ 체 μ λ ¬ κ³Όμ μ λ°°μ νκ³ λ¨ ν λ²μ μνλ‘ κ²μ¦μ μλ£νλ λ¨λ°©ν₯ μ€μΊ λ°©μ μ±ν
μ€μ² ν¬μΈνΈ
1. 컀μ€ν μ λ ¬ κΈ°μ€ νμ μ Hash Map λλ Arrayλ₯Ό ν΅ν Rank Mapping μ°μ κ³ λ €
2. λ¬Έμμ΄ λΉκ΅ μ Prefix Case(μ: apple vs app)μ λν κ²½κ³ μ‘°κ±΄ κ²μ¦ νμ
3. μ 체 λ°μ΄ν° μ λ ¬ λμ μΈμ μμ κ°μ μΌκ΄μ±(Consistency) νμΈμΌλ‘ μκ° λ³΅μ‘λ μ΅μ ν κ°λ₯ μ¬λΆ κ²ν