-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
13-yuyu0830 #52
13-yuyu0830 #52
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ΅μ₯ μ¦κ° λΆλΆ μμ΄ μκ³ λ¦¬μ¦ λκ² μ€λλ§μ 보λ κ² κ°μ΅λλ€..
μ΄λ°μ ν·κ°λ¦¬λ λΆλΆμ΄ μμλλ° λ무μν€λ₯Ό λ³΄κ³ λ¨λ°μ μ΄ν΄ ν΄λ²λ Έμ΅λλ€.
νΉν 첫 λ²μ§Έ μκ³ λ¦¬μ¦μμ λ λ²μ§Έ μκ³ λ¦¬μ¦μΌλ‘ λμ΄κ°κΈ° μν΄ μ΄μ§ νμμ λμ ν΄μ€μ€ μμλλ° κ·ΈλΌ μ λ ¬λμ§ μμ λ°°μ΄λ‘ λνλ ν λ° μ μ΄μ§ νμμ μ¬μ©νκ±°μ§?μμ μμνλλ° λ무 μν€μμ μ€λͺ νλ― μ½λμμλ λ°μ 보면 μμ κ°μ΄ λ€μ΄κ° μ μλ λ²μ μ리λ₯Ό νμνμ¬ κ·Έ μ리μμλΆν° κ·Έ μλ¦¬λ³΄λ€ ν° κ°μ νμνκ³ κ°±μ νλ λ°©λ²μ΄ λκ² μ κΈ°νμ΅λλ€.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ λ κ°μ₯ κΈ΄ μ¦κ°νλ λΆλΆμμ΄μ μ²μ 보λλ°μ. μ¬λ €μ£Όμ λ무μν€ λ¬Έμλ₯Ό 보λκΉ μ μ΄ν΄λκ³ μλ‘μ΄ μκ³ λ¦¬μ¦μ λ°°μΈ μ μμλ€μ! O(n2)μ μκ°λ³΅μ‘λλ₯Ό κ°μ§λ νμ΄λ λͺ¨λ λ°°μ΄μμλ₯Ό μννκΈ° λλ¬Έμ μνν λλ§λ€ λΆλΆμμ΄μ κΈΈμ΄λ₯Ό μ μ₯νκ³ , κ° λΆλΆμμ΄λ§λ€ μ μΌ λ§μ§λ§ μμ(μ μΌ ν° μ)μ λΉκ΅ν΄μ λΆλΆμμ΄μ κΈΈμ΄λ₯Ό λν΄κ°λκ² λ³΅μ‘λκ° μμ² μ€μ΄λλκ² μ κΈ°νμ΅λλ€.
π λ¬Έμ λ§ν¬
κ°μ₯ κΈ΄ μ¦κ°νλ λΆλΆ μμ΄ 2(12015)
βοΈ μμλ μκ°
1μκ°
β¨ μλ μ½λ
β λ¬Έμ
μ΅λ κΈΈμ΄ 1,000,000μ
μμ΄ A
κ° μ£Όμ΄μ§λ€. λͺ¨λ μ«μκ° μ€λ¦μ°¨μμΌλ‘ λ°°μΉλ μμ΄μμ¦κ°νλ μμ΄
μ΄λΌκ³ ν λ,μμ΄ A
μκ°μ₯ κΈ΄ μ¦κ°νλ λΆλΆ μμ΄
μ κΈΈμ΄λ₯Ό ꡬνμ!(μμ΄μ κ° μ«μμ μ΅λ κ°μ 1,000,000μ΄λ€.)
β νμ΄
λ¬Έμ μ체λ κ°λ¨νλ° νμ΄κ° μ’ μ‘°μ νλ€. μ²μ μκ°νλ λ°©λ²μ μ«μμ μ΅λκ°μ΄ 1,000,000 μ΄κΈ° λλ¬Έμ κ° μ«μλ³λ‘ λκ° μ μ₯νλκ² μλκΉ νλ μκ°μ νμλ€. νμ§λ§ λμ ν λλ ·ν ν΄κ²°μ± μ΄ μκ°λμ§ μμλ€...
1οΈβ£ O(N^2)
O(N^2) λ‘ νΈλ λ°©λ²μ λͺ λ°±νλ€.
arr[i]
μκ°μ₯ κΈ΄ μ¦κ°νλ λΆλΆ μμ΄μ κΈΈμ΄
λ₯Όm[i]
λΌκ³ ν λ, arr[j] (0 <= j < i) μ€μμarr[i]
λ³΄λ€ μκ³m[j]
κ° κ°μ₯ ν° μλ₯Ό 골λΌm[i] = m[j] + 1
μ λ°λ³΅νλ©΄ λλ€. λ¬Όλ‘ μ΅λ κΈΈμ΄κ° 1,000,000 μ΄κΈ° λλ¬Έμ O(N ^2)λ‘λ ν μ μμλ€. 골머리λ₯Ό μΈλ§€λ€κ° κ²°κ΅ LISλ₯Ό O(N log N) μΌλ‘ ν΄κ²°νλ λ²μ μ°Ύμλ€.2οΈβ£ O(N log N)
κ²°κ΅ μ°λ¦¬κ° μ°ΎμμΌνλ κ²μ "
arr[j]
κ°μ΄arr[i]
λ³΄λ€ μκ³m[j]
κ° κ°μ₯ ν° j κ°" λ₯Ό μ°ΎμμΌ νλ€. μ¬κΈ°μ μ°λ¦° μ κ°μ μ°ΎκΈ° μν΄ μμ λͺ¨λ κ°μ λ€ λ€μ Έλ³Ό νμ μμ΄ "arr[i]
κ°λ³΄λ€ μμ κ°μ μ΅λm[j]
κ°" μ μ μ₯ν΄λκ³ κ·Έ κ°λ§ μ°Έμ‘°νλ©΄ O(N log N) μ μκ°λ³΅μ‘λλ‘ λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ€!μ¦
λ°°μ΄ m[i]
λ "i κ°μ μ«μλ‘ λ§λ€ μ μλ λ°°μ΄μ λ§μ§λ§ μμκ° λ μ μλ κ°μ€ κ°μ₯ μμ κ°" μ΄λ€!arr[i]
κ°μ μμ°¨μ μΌλ‘ νμνλ€.arr[i]
κ°μ΄m[cnt - 1]
λ³΄λ€ ν¬λ€λ©΄ (arr[i]
κ°μ΄ μμ λͺ¨λ κ°λ³΄λ€ ν¬λ€λ©΄)m[cnt++]
κ°μarr[i]
λ‘ λ°κΎΌλ€.arr[i]
κ°μ΄m[cnt - 1]
λ³΄λ€ μλ€λ©΄arr[i]
λ³΄λ€ μμm[j]
μ€ κ°μ₯ ν° κ°μ μ°Ύλλ€. μ΄ λ, νμμλ μ΄μ§ νμμ μ¬μ©νλ€.arr[i]
μm[j]
κ° κ°μ΄ κ°λ€λ©΄ λ³λ€λ₯Έ μ‘°μΉ μμ΄ λ€μ νμμ μ΄μ΄κ°λ€.arr[i]
κ°m[j + 1]
λ³΄λ€ μλ€λ©΄m[j + 1]
μarr[i]
λ‘ λ°κΎΌλ€.π μλ‘κ² μκ²λ λ΄μ©
μΆμ² λ무μν€ - μ΅μ₯ μ¦κ° λΆλΆ μμ΄https://namu.wiki/w/%EC%B5%9C%EC%9E%A5%20%EC%A6%9D%EA%B0%80%20%EB%B6%80%EB%B6%84%20%EC%88%98%EC%97%B4#s-3.1)