5582번: 공통 부분 문자열
두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들
www.acmicpc.net
DP를 사용하자! 시간초과가 나서 Pypy3으로 제출하였다.
아래 문제와 비슷하지만 연속되어있는 공통된 문자열을 찾는 것이 다르다.
[백준 9251] LCS (python)
9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된..
hillier.tistory.com
import sys
input = sys.stdin.readline
A = input().rstrip()
B = input().rstrip()
result = 0
arr = [[0]*(len(B)+1) for _ in range(len(A)+1)]
for i in range(1, len(A)+1):
for j in range(1, len(B)+1):
if A[i-1] == B[j-1]:
arr[i][j] = arr[i-1][j-1] + 1
result = max(arr[i][j], result)
print(result)
'개발 > 알고리즘' 카테고리의 다른 글
[백준 7579] 앱 (python) (0) | 2021.05.10 |
---|---|
[백준 2156] 포도주 시식 (python) (0) | 2021.05.10 |
[백준 11657] 타임머신 (python) (0) | 2021.05.09 |
[프로그래머스] 지형 이동 (python) (0) | 2021.05.09 |
[백준 1516] 게임 개발(python) (0) | 2021.05.04 |
최근댓글