Problem Solving21 Trie (Prefix tree) κ°λ n-ary treeμ λ³μ’ μΌλ‘ κ° λ Έλμ λ¬Έμλ₯Ό μ μ₯νλ μλ£κ΅¬μ‘°μ΄λ€. νΈλ¦¬λ₯Ό μλμͺ½μΌλ‘ μννλ©΄ λ¨μ΄ νλκ° λμ¨λ€. * λ Έλ * λ Έλλ λ λ ΈλλΌκ³ λ λΆλ¦¬λ©° λ¨μ΄μ λμ λνλΈλ€. TrieNodeλ₯Ό μμν TerminatingTrieNodeλ‘ ννν μλ μκ³ * λ Έλμ λΆλͺ¨ λ Έλ μμ boolean flagλ₯Ό μλ‘ μ μν΄ λ¨μ΄μ λμ ννν μλ μλ€. μμ λ Έλ κ°μ * λ Έλλ‘ λ¨μ΄μ λμ νννλ©΄ κ° λ Έλλ 1κ° ~ (ALPHABET_SIZE + 1)κ°κΉμ§ μμμ κ°κ³ μμ μ μλ€. λ¨ * λ Έλ λμ boolean flagλ‘ νννλ€λ©΄ 0κ° ~ ALPHABET_SIZEκ°κΉμ§. νμ© μ λμ¬λ₯Ό λΉ λ₯΄κ² μ°Ύμ보기 μν΄ λͺ¨λ λ¬Έμμ΄μ νΈλΌμ΄μ μ μ₯ν΄λμ μ μλ€. ν΄μν μ΄λΈμ μ΄μ©νλ©΄ μ£Όμ΄μ§ λ¬Έμ.. 2020. 6. 29. [Leetcode] Min Stack 155. Min Stack λ¬Έμ μμ½: push(), pop(), top(), getMin()μ μ§μνλ μ€νμ λμμΈνλΌ. getMin()μ μ€ν λ΄ μ΅μ μμλ₯Ό λ°ννλ©° μμ μκ°μ μλ£λμ΄μΌ νλ€. μκ° 1: getMin()μ μμ μκ°μ νλ κ²μ΄ ν¬μΈνΈ. push() ν λλ§λ€ minμ μ λ°μ΄νΈ νλ κ²μ μ΄λ ΅μ§ μμ§λ§, minμ΄ pop() λ κ²½μ° μ§μ μ min κ°μΌλ‘ roll back ν΄μΌνλ€. νμ§λ§ μ§μ μ min κ°μ λ€ μ μ₯ν΄λ μκ° μμΌλ―λ‘ (벑ν°λ₯Ό μ΄μ©ν΄ μ μ₯ν΄λ μλ μκ² μ§λ§ μλ―Έκ° μλ€κ³ μκ°νμ) κ·Έλ₯ λ²‘ν° νλμ μ νλλ₯Ό μ΄μ©ν΄ ν΄κ²°ν΄μΌκ² λ€κ³ μκ°νλ€. μκ° 2: λ²‘ν° νλμ μ νλλ₯Ό λͺ¨λ μ°λ κ² λΉν¨μ¨μ μ΄λΌλ μκ°μ΄ λ€μ΄μ μλμ κ°μ struct Nodeλ₯Ό λ§λ€κ³ s.. 2020. 6. 28. λ€μ΄λλ―Ή νλ‘κ·Έλλ° λ€μ΄λλ―Ή νλ‘κ·Έλλ°μ 1) ν° λ¬Έμ λ₯Ό μμ λ¬Έμ λ‘ λλ μ μκ³ 2) μμ λ¬Έμ μ λ΅μ΄ ν° λ¬Έμ μμλ λμΌν λ νλμ λ¬Έμ λ ν λ²λ§ νλλ‘ Memoization νλ μκ³ λ¦¬μ¦μ΄λ€. κ°λ Ή νΌλ³΄λμΉ μμ΄μ ꡬν λ fib(15)λ₯Ό ꡬνλ €λ©΄ fib(14) + fib(13)μ ꡬν΄μΌ νλλ°, μ κ·Έλ¦Όμ²λΌ λμΌν κ³μ°μ λ§€μ° μ¬λ¬ λ² ν΄μΌ ν¨μ μ μ μλ€. λ°λΌμ ν λ² κ³μ°ν κ°μ λ°°μ΄μ memo ν΄ λκ³ , λ°°μ΄μ memo ν΄ λ κ°μ΄ μλ€λ©΄ κ·Έκ²μ λ°ννκ³ κ°μ΄ μλ€λ©΄ (μ²μ κ³μ°νλ κ²μ΄λ―λ‘) κ³μ°νκ³ memo νλ©΄ λλ€. μΆμ²λ μ¬μ§ μλ λ§ν¬ 2020. 6. 24. μ΅λ μ°μ λΆλΆ μμ΄μ ν© (μλ μͺ½μ update μμ) μ μ΄ λ¬Έμ λ λ³Ό λλ§λ€ μλ‘μ΄κ±ΈκΉ? μ΄ μμλ§ λ€ λ€μ― λ²μ λ³Έ κ² κ°λ€. 컨μ μ: "μμ ν©μ λ°λ³΅μ μΌλ‘ ꡬνλλ°, ν©μ΄ μμλ©΄ 0μΌλ‘ μ΄κΈ°ννκ³ λ€μ μλΆν° λ€μ μμνλ€." ν©μ΄ μμμΌ λ 0μΌλ‘ μ΄κΈ°ννλ κ²μ, μ 체 λ°°μ΄ μ€ μμ μ΅μ νλ μ΄μ μλ€κ³ κ°μ νκΈ° λλ¬Έμ΄λ€. μμκ° μ΅μ νλ μ΄μ μλ€λ©΄ κ·Έ μμ νλλ§ κ°μ§λ κ² (μμ ν©λ³΄λ€) μ΄λμ΄λ€. κ·Έλμ λ μ΄ μκ³ λ¦¬μ¦μ λΉνμ΄ μκΈ°λλ°, λ°°μ΄μ λͺ¨λ μκ° μμμΈ κ²½μ°μ 0μ λ°ννκ² λλ€λ κ²μ΄λ€. κ·Έλμ μ΄ κ²½μ°λ λ°°μ΄μ μλ μ μ€ κ°μ₯ ν° (μ)μλ₯Ό λ°ννλ€. λ¬Όλ‘ 0μ λ°νν λ νμ λ°°μ΄μ λͺ¨λ μκ° μμμΈ κ²μ μλλ€. λ°°μ΄μ λͺ¨λ μκ° 0μΌ λ, νΉμ 0κ³Ό μμλ‘λ§ μ΄λ£¨μ΄μ§ κ²½μ°μλ 0μ .. 2020. 6. 23. μ΄μ 1 2 3 4 5 6 λ€μ