💔LCS
1. 문제 설명 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. www.acmicpc.net 문자열이 두 개 주어졌을 때, 두 문자열의 최장 공통 부분 수열을 구하여라 2. 문제 푸는 원리 설명 부분 수열은 본 수열에서의 숫자의 순서를 지키는 하나의 열이어야 한다. 예를 들어 0이 아닌 양의 정수라는 수열이 있다고 하자. (1, 2, 3, 4, 5, 6, 7, …) 짝수 정수로 이루어진 수열은 해당 정수의 순서를 지키므로 0이 아닌 양의 정수의 부분 수열이다. (2, 4, 6, 8. 10, …) 따라서 최장 공통 부분 수열이라면, 두 문자열에서 공통으로 순서가..
더보기
🖤LIS 알고리즘의 이론과 구현
1. LIS란? LIS란 Longest Increasing Subsequence의 약자로 가장 긴 증가하는 부분 수열을 뜻한다. LIS 알고리즘 문제는 전체 수열을 주어지고, 그 안에서 가장 길고, 증가하는 부분 수열을 구해야 하는 문제들을 총칭이다. 난 부분 수열이 무엇인지부터 헷갈렸다. 따라서 먼저 수학적 배경지식을 공부하고, 마저 설명하겠다. 1-1. 부분 수열이란 무엇인가? 수열은 수가 하나의 열로 나열된 형태를 뜻한다. (행군하는 군인을 떠올려보라!) 여기서 부분수열이란 주어진 수열의 일부 항을 원래 순서대로 나열하여 얻을 수 있는 수열 을 뜻한다. 만약 전체 수열 S 가 {1,2,3,4,5,6,7,8,9,10}이라면 {1}, {2,4,6,8,10}, {2,4,6}, {8,9,10} 모두 S의 ..
더보기