🦊 공통 부분 문자열
1. 문제 링크
2. 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
a = input()
b = input()
len_a = len(a);
len_b = len(b);
dp = []
for i in range(len_a + 1):
dp.append([0] * (len_b + 1));
max_result = 0
for i in range(1, len_a + 1):
for j in range(1, len_b + 1):
# 현재 위치에서 문자가 같으면 이전 것의 같았던 개수를 가져옴
if a[i - 1] == b[j - 1]:
dp[i][j] = dp[i - 1][j - 1] + 1
max_result = max(max_result, dp[i][j])
print(max_result)
Pypy3
236497KB
448ms
3. 해설
해설
2차원 배열에 i - 1, j -1 번 인덱스는 이전까지 일치했던 개수를 의미함
이를 찾아가며 최장 부분 수열이 되는지 확인
This post is licensed under CC BY 4.0 by the author.