알고라파덕~
이번 문제는 LIS를 2개를 이용하여 푸는 JLIS라는 문제입니다!
이 문제 또한 동적계획법을 이용하여 해결을 하는데요~
동적 계획법이란 처음 주어진 문제를 더 작은 문제들로 나눈 뒤 각 조각의 답을 계산하고, 이 답들로부터 원래 문제에 대한 답을 계산해 내는 방법입니다.
어떤 수열에서 0개 이상의 숫자를 지운 결과를 원 수열의 부분 수열이라고 부릅니다. 예를 들어 '4 7 6'은 '4 3 7 6 9'의 부분 수열입니다. 중복된 숫자가 없고 오름 차순으로 정렬되어 있는 부분 수열들을 가리켜 증가 부분 수열이라고 부르지요. 예를 들어 '3 6 9'는 앞의 수열의 증가 부분 수열입니다.
문제 풀이법
이 문제는 그 전 문제 LIS의 확장판입니다! 이번에는 2개의 수열 중에서 수열의 값을 하나씩 선택해서 메모이제이션을 하는 방법입니다.
점화식으로는
JLIS(indexA, indexB) = max{max(JLIS(nextA,indexB)+1), max(JLIS(indexA, nextB)+1)} 입니다.
'알고스팟 풀이 > 동적계획법' 카테고리의 다른 글
[알고스팟/ALGOSPOT] 18. ASYMTILING (0) | 2015.07.01 |
---|---|
[알고스팟/ALGOSPOT] 17. TILING2 (0) | 2015.07.01 |
[알고스팟/ALGOSPOT] 15. LIS (0) | 2015.06.23 |
[알고스팟/ALGOSPOT] 14. TRIANGLEPATH (0) | 2015.06.23 |
[알고스팟/ALGOSPOT] 10. PACKING (0) | 2014.12.07 |