LCS(Longest Common Substring)
β’
μ΅μ₯ κ³΅ν΅ λΆλΆ λ¬Έμμ΄μ΄λ€.
β’
DP λ₯Ό κΈ°λ°μΌλ‘ νλ€.
β’
Substring μ μ°μλ λΆλΆ λ¬Έμμ΄μ νμΈνλ€.
λμκ³Όμ
첫λ²μ§Έλ‘ ν΄μΌ ν μΌμ dp ν
μ΄λΈμ μμ±νλ κ²μ΄λ€. μ΄λ 첫λ²μ§Έ νκ³Ό μ΄μ νμ 0 μΌλ‘ λ§μΆ°μ€λ€.
0 | A | B | C | D | E | F | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
G | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
B | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
C | 0 | 0 | 0 | 2 | 0 | 0 | 0 |
D | 0 | 0 | 0 | 0 | 3 | 0 | 0 |
F | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
E | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
ν
μ΄λΈμ μ±μ°λ κΈ°μ€μ μλμ κ°λ€.
μλ‘ κ°μ λ¬Έμμ΄μ΄ μ€λ©΄ λκ°μ (μΌμͺ½ μ)μ κ° + 1 μ νλ€.
μ΄λ κ³΅ν΅ λ¬Έμμ΄μ μ°μλμ΄μΌ νκΈ° λλ¬Έμ΄λ€.
λ§λ€μ΄μ§ ν
μ΄λΈμμ μ΅λκ°μ μ°ΎμΌλ©΄ LCS νμμ΄ μ’
λ£λλ€.
LCS(Longest Common Subsequence)
β’
μ΅μ₯ κ³΅ν΅ λΆλΆ μμ΄μ΄λ€.
β’
DP λ₯Ό κΈ°λ°μΌλ‘ νλ€.
β’
Subsequence λ μ°μλμ§ μμ λΆλΆ λ¬Έμμ΄μ μ°Ύλλ€.
λμκ³Όμ
1. ν μ΄λΈ λ§λ€κΈ°
첫λ²μ§Έλ‘ ν΄μΌ ν μΌμ dp ν
μ΄λΈμ μμ±νλ κ²μ΄λ€. μ΄λ 첫λ²μ§Έ νκ³Ό μ΄μ νμ 0 μΌλ‘ λ§μΆ°μ€λ€.
0 | A | B | C | D | E | F | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
G | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
B | 0 | 0 | 1 | 1 | 1 | 1 | 1 |
C | 0 | 0 | 1 | 2 | 2 | 2 | 2 |
D | 0 | 0 | 1 | 2 | 3 | 3 | 3 |
F | 0 | 0 | 1 | 2 | 3 | 3 | 4 |
E | 0 | 0 | 1 | 2 | 3 | 4 | 4 |
ν
μ΄λΈμ μ±μ°λ κΈ°μ€μ μλμ κ°λ€.
β’
μλ‘ λ€λ₯Έ λ¬Έμμ΄μ΄ μ€λ©΄ μ, μΌμͺ½ κ°μ λΉκ΅νμ¬ λ ν° κ°μ λ£λλ€.
β’
μλ‘ κ°μ λ¬Έμμ΄μ΄ μ€λ©΄ λκ°μ (μΌμͺ½ μ)μ κ° + 1 μ νλ€.
μ΄μ κ³Ό μλ‘ λ€λ₯Έ λ¬Έμμ΄ λΆλΆμμ μ°¨μ΄μ μ 보μ΄λ μ΄μ λ κ³΅ν΅ λΆλΆ μμ΄μ μ°μλ νμκ° μκΈ° λλ¬Έμ΄λ€. λ§λ€μ΄μ§ ν
μ΄λΈμμ μ΅λκ°μ μ°ΎμΌλ©΄ LCS νμμ΄ μ’
λ£λλ€.
2. κ²°κ³Ό μ°ΎκΈ°
0 | A | B | C | D | E | F | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
G | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
B | 0 | 0 | 1 | 1 | 1 | 1 | 1 |
C | 0 | 0 | 1 | 2 | 2 | 2 | 2 |
D | 0 | 0 | 1 | 2 | 3 | 3 | 3 |
F | 0 | 0 | 1 | 2 | 3 | 3 | 4 |
E | 0 | 0 | 1 | 2 | 3 | 4 | 4 |
μ΄λ κ² λ§λ€μ΄μ§ ν
μ΄λΈμμ κ²°κ³Όλ₯Ό μ°Ύλκ³Όμ μ λ€μκ³Ό κ°λ€.
1.
LCS λ°°μ΄μ κ°μ₯ λ§μ§λ§ κ°μμ μμν΄μ μ / μλ μ€ νμ¬ κ°κ³Ό κ°μ κ°μ μ°Ύλλ€.
2.
κ°μ μ°Ύμλ€λ©΄ ν΄λΉ κ°μΌλ‘ μ΄λνλ€. κ·Έ ν μΌμͺ½κ³Ό μμͺ½κ° μ€ νμ¬μ κ°μ κ°μ μ°Ύλλ€.
2.1. νμ¬μ κ°μ κ°μ΄ μλ€λ©΄ λκ°μ μΌλ‘ μ΄λνλ€. κ·Έ ν λ€μ 2 λ² κ³Όμ μ λ°λ³΅νλ€.
2.2. κ°μ μ°Ύμλ€λ©΄ ν΄λΉ κ°μΌλ‘ μ΄λνμ¬ 2 λ² κ³Όμ μ λ°λ³΅νλ€.
3.
0 μΌλ‘ μ΄λνλ©΄ μ’
λ£νκ³ , λ°°μ΄μ λ€μ§λλ€.