본문 바로가기

LCS2

백준 9252번 : LCS2 (Java) 문제 https://www.acmicpc.net/problem/9252 9252번: LCS 2 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net 구현 방법 백준 9251 LCS 문제(https://www.acmicpc.net/problem/9251)에 LCS 출력을 추가한 문제 입니다. 결과 값은 LCS 구하는 것의 역방향으로 생각하면 됩니다. 1. LCS 배열의 가장 마지막 값에서 시작 2. LCS[i - 1][j]와 LCS[i][j - 1] 중 현재 값과 같은 값 찾기 2-1. 만약.. 2022. 3. 4.
백준 9251번 : LCS (Java) 문제 구현 방법 LCS (Longest Common Subsequence)는 최장 공통 부분 수열로 모두의 부분 수열이 되는 수열 중 가장 긴 값을 찾는 알고리즘 입니다. 부분 수열이기 때문에 연속할 필요가 없습니다. 2차원 배열을 생성하여 문자를 하나씩 비교해주었습니다. 아래 순서는 구현 과정을 간략하게 나타낸 것 입니다. 1. 편의를 위해 마진 설정 2. 문자가 같다면 이전에 저장된 값에 +1 (이전에 저장된 값에는 현재까지의 최장 부분 수열 길이가 저장) 3. 문자가 같지 않다면 현재까지 탐색한 부분 수열 길이에서 더 큰 값 저장 4. 위 과정 반복 코드를 보고 따라가면서 이해하는 것을 추천드립니다. 구현 코드 package BOJ.Gold; import java.io.BufferedReader; .. 2022. 3. 3.