티스토리 뷰
반응형
https://www.acmicpc.net/problem/9251
⊙ 문제
⊙ 입력
⊙ 출력
⊙ 예제 입출력
⊙ 알고리즘 분류
- 다이나믹 프로그래밍
- 문자열
⊙ 문제 접근 과정
LCS 알고리즘 문제다. LCS는 번역하면 최장 공통 부분 문자열이다.
전에 다뤘던 LIS 최장 증가 부분 수열과 유사하다.
LIS는 다이나믹 프로그래밍(DP)을 기반으로 알고리즘이 구성되어있는데 LCS도 마찬가지이다.
DP를 이용하여 구현하면 공통 부분 수열의 길이를 구할 수 있다.
⊙ 문제 풀이
#include <iostream>
#include <algorithm>
using namespace std;
string st1, st2;
int dp[1001][1001];
int main() {
cin >> st1 >> st2;
int len1= st1.size();
int len2= st2.size();
for(int i=1; i<=len2; i++) {
for (int j = 1; j <= len1; j++) {
if (st2[i - 1] == st1[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[len2][len1];
}
⊙ 결과
⊙ 마무리
NONE
좋아요는 로그인하지 않아도 누를 수 있습니다!
728x90
반응형
'백준 온라인 저지 [BOJ] > C++ [CPP]' 카테고리의 다른 글
[백준(BOJ)] 1149번 : RGB거리 - C++[CPP] (0) | 2021.06.20 |
---|---|
[백준(BOJ)] 9663번 : N-Queen - C++[CPP] (0) | 2021.06.19 |
[백준(BOJ)] 5430번 : AC - C++[CPP] (0) | 2021.06.16 |
[백준(BOJ)] 1316번 : 그룹 단어 체커 - C++[CPP] (0) | 2021.06.14 |
[백준(BOJ)] 1931번 : 회의실 배정 - C++[CPP] (0) | 2021.06.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 풀이
- JS
- 운영체제
- java
- 정렬
- Web
- Python
- CPP
- BFS
- 프로그래머스
- py
- 알고리즘
- 쉽게배우는자바프로그래밍
- 백준
- OS
- 우종정
- 쉽게 배우는 자바 프로그래밍
- 해답
- 구현
- 자바
- 연습문제
- 파이썬
- 답
- 자바스크립트
- 정답
- C++
- 그리디
- 정리
- 문자열
- 쉽게배우는
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함