[C++] 백준 9251 LCS

2021. 2. 19. 20:19·Algorithm/Baekjoon
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

string x, y;
int dp[1001][1001];

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	getline(cin, x);
	getline(cin, y);

	for (int i = 1; i <= x.length(); i++)
	{
		for (int j = 1; j <= y.length(); j++)
		{
			if (x[i - 1] == y[j - 1])	//0~length까지 x[i]번째와 y의[j~length]번째들이 같나 확인
				dp[i][j] = dp[i - 1][j - 1] + 1;	//같으면 전ij번째의 길이에 + 1해줌
			else
				dp[i][j] = max(dp[i][j - 1], dp[i - 1][j]);	
			//같지 않으면 현재 확인중인 x글자와 y의 j-1번째글자의 비교했던 길이와 
			//전에 확인했던 x글자와 현재의 글자의 비교한 크기를 비교하여 현재x와y를 비교한 값에 넣는다.
		}
	}

	cout << dp[x.length()][y.length()];
}

 

이런 길이를 구하는 문제에서는 쌓아가는 느낌이 많은듯하다.

풀이

1. 현재 x[i-1]와 비교하고있는 y[j-1]가 같으면 전 dp에 +1 한값을 현재 값에 넣는다. (1씩 계속 쌓아넣는다.)

2. 현재 x[i-1]와 비교하고있는 y[j-1]가 다르면 현재 확인중인x글자와 y의 j-1번째글자의 비교했던 길이와 
전에 확인했던 x글자와 현재의 글자의 비교한 크기를 비교하여 현재x와y를 비교한 값에 넣는다.

저작자표시 (새창열림)

'Algorithm > Baekjoon' 카테고리의 다른 글

[C++] 백준 2655 가장높은탑쌓기 DP  (0) 2021.03.23
[C++] 백준 1495 기타리스트 DP  (0) 2021.03.17
[C++] 백준 11053 가장 긴 증가하는 부분 수열  (0) 2021.02.18
[C++] 백준 12865 평범한 배낭  (0) 2021.02.17
[C++] 백준 1904 01타일  (0) 2021.02.16
'Algorithm/Baekjoon' 카테고리의 다른 글
  • [C++] 백준 2655 가장높은탑쌓기 DP
  • [C++] 백준 1495 기타리스트 DP
  • [C++] 백준 11053 가장 긴 증가하는 부분 수열
  • [C++] 백준 12865 평범한 배낭
chanheess
chanheess
'왜' 그렇게 했는가?에 대한 생각으로 공부 및 작업의 저장관리
  • chanheess
    왜 그렇게 생각했는가?
    chanheess
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Backend Programming
      • Game Programming
        • Unreal
        • DirectX
      • C++
        • Memo
        • Basic
        • Effective Modern
      • Java
      • Algorithm
        • Memo
        • Baekjoon
        • Programmers
        • HackerRank, LeetCode
      • Data Structure
      • Design Pattern
      • Etc
        • Memo
        • Daily Log
        • Book
  • 최근 글

  • 최근 댓글

  • 태그

    백준
    c++ 기초 플러스
    dfs
    spring
    오블완
    JPA
    dp
    알고리즘
    티스토리챌린지
    Java
    위클리 챌린지
    프로그래머스
    SpringSecurity
    JWT
  • hELLO· Designed By정상우.v4.10.0
chanheess
[C++] 백준 9251 LCS

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.