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

 

λ°˜μ‘ν˜•