#1302
최장 공통 부분 수열 1
시간 제한
1s
메모리 제한
512MB
제출
1
정답
1
맞힌 사람
1
정답 비율
100.0%
문제
수열 에서 원소 몇 개를 골라 원래의 순서를 유지한 채 이어 붙여 만든 수열을 의 부분 수열이라고 한다. 예를 들어 문자열 ACAYKP의 부분 수열로는 AAK, CYP, ACAYKP 등이 있고, KAY는 부분 수열이 아니다.
알파벳 대문자로 이루어진 두 문자열 와 가 주어진다. 의 부분 수열이면서 동시에 의 부분 수열인 문자열을 두 문자열의 공통 부분 수열이라고 하며, 그중 가장 긴 것을 최장 공통 부분 수열(LCS, Longest Common Subsequence)이라고 한다.
두 문자열 와 가 주어졌을 때, 최장 공통 부분 수열의 길이를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 문자열 가, 둘째 줄에 문자열 가 주어진다. 두 문자열은 모두 알파벳 대문자로 이루어져 있으며, 길이는 각각 이상 이하이다.
출력
첫째 줄에 두 문자열의 최장 공통 부분 수열의 길이를 출력한다.
예제 입력 1
ACAYKP
CAPCAK
예제 출력 1
4
예제 입력 2
ABCBDAB
BDCAB
예제 출력 2
4
노트
이 문제가 왜 중요할까? LCS 알고리즘은 다양한 곳에서 사용되고 있다. 대표적인 예시는 아래와 같다.
- Git을 비롯한 버전 관리 시스템(VCS)의 코드 비교 도구
- 생물정보학에서의 DNA 염기서열이나 단백질 아마노산 서열의 비교 (질병 예측, 치료제 개발 등)
- LLM 모델의 평가 지표 (ROUGE-L)
- 문제를 만든 사람
- 조서현
- 알고리즘 분류
코드 제출
코드를 제출하려면 로그인이 필요합니다.
로그인내 제출
제출 내역이 없습니다.
맞은 사람
| # | 순위 | 사용자 | 언어 | 시간 | 메모리 | 코드 길이 | |
|---|---|---|---|---|---|---|---|
| 6506 | 🥇 | 조서현 | PyPy | 43ms | 65136KB | 233B |
난이도 투표
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
| # | 사용자 | 문제 | 결과 | 언어 | 시간 | 메모리 | 코드 길이 | 제출 시간 | |
|---|---|---|---|---|---|---|---|---|---|
| 6506 | 맞았습니다 | PyPy | 43ms | 65136KB | 233B | 2026. 05. 20. 11:01 |