-
[백준/BOJ] 9251번 LCS (C++)알고리즘 문제풀이/백준 2021. 2. 14. 20:44
9251번: LCS
LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.
www.acmicpc.net
새롭게 알게된 점
LCS의 개념을 알게됨
DP 유형의 문제, 위의 링크를 참고하여 해결했습니다.
#include <iostream> using namespace std; int dp[1001][1001]; int main(void) { ios_base::sync_with_stdio(false); cin.tie(0); string s1, s2; cin >> s1 >> s2; for(int i = 1; i <= s1.size(); i++) { for(int j = 1; j <= s2.size(); j++) { if(s1[i - 1] == s2[j - 1]) dp[i][j] = dp[i - 1][j - 1] + 1; else dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]); } } cout << dp[s1.size()][s2.size()]; }
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[프로그래머스/Level 3] 기둥과 보 설치 (C++) (0) 2021.02.17 [백준/BOJ] 12886번 돌 그룹 (C++) (0) 2021.02.15 [백준/BOJ] 14502번 연구소 (C++) (0) 2021.02.10 [백준/BOJ] 16948번 데스 나이트 (C++) (0) 2021.02.09 [백준/BOJ] 16928번 뱀과 사다리 게임 (C++) (0) 2021.02.08