๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold5] 5582๋ฒˆ_๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด

Dbswnstjd 2023. 4. 26. 11:59

๋ฌธ์ œ

https://www.acmicpc.net/problem/5582

 

5582๋ฒˆ: ๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด

๋‘ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋‘ ๋ฌธ์ž์—ด์— ๋ชจ๋‘ ํฌํ•จ๋œ ๊ฐ€์žฅ ๊ธด ๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ์ฐพ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์–ด๋–ค ๋ฌธ์ž์—ด s์˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด t๋ž€, s์— t๊ฐ€ ์—ฐ์†์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 5582๋ฒˆ ๋ฌธ์ œ - ๊ณตํ†ต ๋ถ€๋ถ„ ๋ฌธ์ž์—ด
answer = 0
str1, str2 = input(), input()

dp=[[0] * (len(str2) + 1) for _ in range(len(str1) + 1)]

for i in range(1, len(str1)+1):
    for j in range(1, len(str2)+1):
        if (str1[i-1] == str2[j-1]):
            dp[i][j] = dp[i-1][j-1] + 1
            answer = max(dp[i][j], answer)
print(answer)