알고리즘 동적 프로그래밍 2

알고리즘 #8_ 최장 공통 부분 수열(LCS: Longest Common Subsequence)

안녕하세요.이번 포스팅에서는 최장 공통 부분 수열(LCS: Longest Common Subsequence)에 대해서 알아보도록 하겠습니다.궁금하신 점이나 내용에 대한 피드백은 댓글을 이용해주세요 :)1. 최장 공통 부분 수열(LCS: Longest Common Subsequence) 먼저 최장 공통 부분 수열이 어떠한 것인지 알아보도록 하겠습니다.문제를 이해하기 위해 다음을 가정합니다. X = Y = 이러한 두 수열 X, Y가 있습니다. 이때, 는 X와 Y의 공통 부분 수열입니다.X = Y = 위에서 X 수열과 Y 수열에 밑줄을 쳐놓은 부분을 통해 는 X와 Y의 공통 부분 수열이라는 것을 알 수 있습니다.꼭 연결되어 있어야 하는 것이 아니며, 단지 단조 증가하는 수열로써 존재하면 되는 것이죠.그렇다면 ..

알고리즘 #3_동적 프로그래밍: 막대 자르기(rod cut algorithm)

안녕하세요. 문범우입니다.이번 포스팅부터 Introduction to Algorithm (3rd Edition) 책의 15장. 동적 프로그래밍(ch15, dynamic programming)에 대해서 이야기하려 합니다.매주 1~2번 정도 포스팅 될 예정이며, 공부를 하면서 내용을 정리해서 올리기 때문에 잘못된 정보나 지식이 포함되어 있을 수 있으니 참고용으로 확인해주시고, 잘못된 내용에 대해서는 피드백 주시면 감사하겠습니다.오늘은 동적 프로그래밍에 대한 개요와 동적 프로그래밍의 막대 자르기(Rod Cut)에 대해서 알아보겠습니다.1. 동적 프로그래밍(Dynamic programming) 동적 프로그래밍은 분할정복 기법과 같이 부분 문제의 해를 결합하여 문제를 해결합니다.이때, 프로그래밍이란 것은 코딩을 ..

728x90