Algorithm Problem/Python

[python] SWEA - 3304. ์ตœ์žฅ ๊ณตํ†ต ๋ถ€๋ถ„ ์ˆ˜์—ด

deo2kim 2020. 12. 18. 23:45
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  • D3 | DP (LCS)

๐Ÿ’จ ์—ญ์‹œ SWEA์˜ ๋‚œ์ด๋„๋Š” ๋ฏฟ์„๊ฒŒ ๋ชป๋œ๋‹ค. ์ด๊ฒŒ ๊ฒจ์šฐ D3๋ผ๋‹ˆ...

๐Ÿ’จ [python] ๋ฐฑ์ค€ - 9251. LCS (์ฐธ๊ณ )

๐Ÿ’จ ์ง€๋‚œ๋ฒˆ์— ๋ฐฑ์ค€์—์„œ ํ•œ๋ฒˆ ํ’€์—ˆ๊ณ , ์ฝ”๋”ฉํ…Œ์ŠคํŠธํ•  ๋•Œ ํ•œ๋ฒˆ ํ’€์—ˆ๊ณ , ์ด๋ฒˆ์— ๋‹ค์‹œ ํ‘ธ๋‹ˆ๊น ์–ด๋А์ •๋„ ์ดํ•ด๊ฐ€ ๋œ๊ฑฐ ๊ฐ™๋‹ค.

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

# ์ž…๋ ฅ
T = int(input())
Ns = [input() for _ in range(T)]

# ํ’€์ด - LCS
results = []
for tc in range(T):
    A, B = Ns[tc].split()
    dp = [[0] * (len(A) + 1) for _ in range(len(B) + 1)]

    for i in range(1, len(dp)):
        for j in range(1, len(dp[i])):
            # ๊ฐ™์„ ๋–„
            if B[i - 1] == A[j - 1]:
                dp[i][j] = dp[i - 1][j - 1] + 1
            # ๋‹ค๋ฅผ ๋•Œ
            else:
                dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])

    results.append((dp[-1][-1]))

# ์ถœ๋ ฅ
for tc in range(T):
    print(f'#{tc + 1} {results[tc]}')
 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: SW Expert Academy

 

SW Expert Academy

SW ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ญ๋Ÿ‰ ๊ฐ•ํ™”์— ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ•™์Šต ์ปจํ…์ธ ๋ฅผ ํ™•์ธํ•˜์„ธ์š”!

swexpertacademy.com

 

๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€์ˆ˜0