디자인 패턴 디자인 패턴이란 소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴입니다. 디자인 패턴을 참고하여 개발할 경우 개발의 효율성과 유지보수성, 운용성이 높아지며, 프로그램의 최적화에도 도움이 됩니다. 따라서 다양한 디자인 패턴을 숙지하고 있다면 해당 패턴의 이름만으로 구조를 파악할 수 있게 되어 더욱 원활한 의사소통이 가능해집니다. Gamma 디자인 패턴이라고도 불리는 GoF 디자인 패턴이 가장 잘 알려진 디자인 패턴인데, 이는 디자인 패턴을 목적과 범위로 분류하였습니다. 목적에 따른 분류를 보자면, 디자인 패턴은 “생성”, “구조”, “행위” 중 한 가지의 목적을 갖는다고 하였습니다. 구분 유형 설명 목적 생성 객체 인스턴스 생성에 관여, ..
LCS LCS란 보통 최장 공통 부분수열(Longest Common Subsequence)을 의미하지만, 최장 공통 문자열(Longest Common Substring)을 말하기도 합니다. 여기에서 부분수열(Subsequence)과 문자열(Substring)의 차이는 문자열이 연속적인지 아닌지에 따라 달라지는데요, 연속적이라면 문자열(Substring)이고, 비연속적이면 부분수열(Subsequence)입니다. 다음과 같은 예시가 있다고 가정해봅시다. [AUTABBEHNSAAB, BCUAMEFKAJNAAB] 위 예시에서 AAB는 연속적이기 때문에 문자열이라고 할 수 있고, UAENAAB는 비연속적이기 때문에 부분 수열이라고 할 수 있습니다. 위에서 말한 두 가지의 LCS를 구현하는 방법에 대해 알아보겠습니..