[BOJ] 1958번: LCS 3

https://www.acmicpc.net/problem/1958


D[i][j][k]를 s1[0~i-1], s2[0~j-1], s3[0~k-1]의 subsequence 중 최대 길이라고 할 때


s1[i-1], s2[j-1], s3[k-1]이 같다면 D[i][j][k] = D[i - 1][j - 1][k - 1] + eq3(s1[i - 1], s2[j - 1], s3[k - 1]) 이고


그렇지 않다면 D[i][j][k] = max(D[i - 1][j][k], D[i][j - 1][k], D[i][j][k - 1]); 입니다.


실제로 문제를 풀 때에는 Substrng인줄 알고 몇 번 틀렸습니다.


https://github.com/encrypted-def/BOJ/blob/master/1958.cpp

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ] 1017번: 소수 쌍  (0) 2018.01.07
[BOJ] 1946번: 신입 사원  (0) 2018.01.07
[BOJ] 2110번: 공유기 설치  (0) 2018.01.07
[BOJ] 11931번: 수 정렬하기 4  (0) 2018.01.07
[BOJ] 1967번: 트리의 지름  (0) 2018.01.07
[BOJ] 2169번: 로봇 조종하기  (0) 2018.01.07
  Comments