2020-1ν•™κΈ°, λŒ€ν•™μ—μ„œ β€˜μ•Œκ³ λ¦¬μ¦˜β€™ μˆ˜μ—…μ„ λ“£κ³  κ³΅λΆ€ν•œ λ°”λ₯Ό μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. 지적은 μ–Έμ œλ‚˜ ν™˜μ˜μž…λ‹ˆλ‹€ :)

1 minute read

2020-1ν•™κΈ°, λŒ€ν•™μ—μ„œ β€˜μ•Œκ³ λ¦¬μ¦˜β€™ μˆ˜μ—…μ„ λ“£κ³  κ³΅λΆ€ν•œ λ°”λ₯Ό μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. 지적은 μ–Έμ œλ‚˜ ν™˜μ˜μž…λ‹ˆλ‹€ :)


<Longest Increasing Subsequence> μ€„μ—¬μ„œ <LIS> λ¬Έμ œλŠ” sequence of numbersκ°€ μž…λ ₯으둜 λ“€μ–΄μ˜¬ λ•Œ, μ¦κ°€ν•˜λŠ” λΆ€λΆ„μˆ˜μ—΄(increasing subsequence) μ€‘μ—μ„œ κ°€μž₯ κΈ΄ λΆ€λΆ„μˆ˜μ—΄μ„ μ°ΎλŠ” λ¬Έμ œλ‹€!

예λ₯Ό λ“€μ–΄ μš°λ¦¬μ—κ²Œ μ•„λž˜μ™€ 같은 μˆ˜μ—΄μ΄ μ£Όμ–΄μ‘Œλ‹€κ³  ν•˜μž.

μ΄λ•Œ, μ¦κ°€ν•˜λŠ” λΆ€λΆ„μˆ˜μ—΄μ„ λ§Œλ“€κΈ° μœ„ν•΄ κ°€λŠ₯ν•œ λͺ¨λ“  transition을 ν‘œμ‹œν•˜λ©΄ μ•„λž˜μ™€ κ°™λ‹€!

Directed Graphκ°€ κ·Έλ €μ‘Œλ‹€!! 그런데, μ’€ μ΅μˆ™ν•˜μ§€ μ•Šμ€κ°€? λ°”λ‘œ DAGλ‹€!!

사싀 μœ„μ˜ 상황을 κ·Έλž˜ν”„λ‘œ λ§Œλ“  ν›„, μ•žμ—μ„œλΆ€ν„° BFSλ₯Ό ν•˜λ©΄μ„œ Longest Pathλ₯Ό 찾아도 문제λ₯Ό ν’€ 순 μžˆλ‹€. 그런데, DPλŠ” 쑰금 λ‹€λ₯Έ λ°©μ‹μœΌλ‘œ μ•Œκ³ λ¦¬μ¦˜μ„ μ œμ‹œν•œλ‹€!!

for $j=1, 2, \dots, n$
  $L(j) = 1 + \max \{ L(i) : (i, j) \in E \}$

return $\max_j L(j)$

μœ„μ˜ μ•Œκ³ λ¦¬μ¦˜μ˜ λ™μž‘ 방식을 생각해보면, λ‹¨μˆœνžˆ $O(N^2)$으둜 ν•΄κ²°ν•  수 μžˆμŒμ„ μ•Œ 수 μžˆλ‹€!! μ›λž˜λŠ” BFS둜 ν’€λ©΄, $N\times O(N^2)$은 걸릴 문제λ₯Ό $O(N^2)$둜 ν•΄κ²°ν•  수 μžˆλ‹€λ‹ˆ λ†€λžμ§€ μ•Šμ€κ°€??


DP의 λ§ˆλ²•μ€ 이제 μ‹œμž‘μ΄λ‹€. μ΄μ–΄μ§€λŠ” ν¬μŠ€νŠΈμ—μ„œλŠ” LIS 보닀 μͺΌμ˜€κΈˆ λ³΅μž‘ν•œ λ°©μ‹μœΌλ‘œ DPλ₯Ό μˆ˜ν–‰ν•˜λŠ” <Edit Distance> λ¬Έμ œμ— λŒ€ν•΄ μ‚΄νŽ΄λ³Έλ‹€!!

πŸ‘‰ Edit Distance


μΆ”μ²œ 문제

p.s. 참고둜 ν‰λ²”ν•œ LIS λ¬Έμ œλŠ” μœ„μ˜ DP보닀 더 λΉ λ₯Έ μ•Œκ³ λ¦¬μ¦˜μ΄ μ‘΄μž¬ν•œλ‹€!! $O(N \log N)$으둜 λ™μž‘ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μœΌλ‘œ, binary searchλ₯Ό ν™œμš©ν•œλ‹€. μžμ„Έν•œ λ‚΄μš©μ΄ κΆκΈˆν•˜λ©΄, μ•„λž˜μ˜ 포슀트λ₯Ό μ°Έκ³ ν•˜λ„λ‘ ν•˜μž.

πŸ‘‰ β€˜μžμ†9319β€™λ‹˜μ˜ 포슀트

Categories:

Updated: