백준 15482번 바로가기

나의 풀이

# 입력 - python의 경우 유니코드 처리 없이도 가능하다!! 갓갓
import sys
read = sys.stdin.readline

A, B = read().strip(), read().strip()
n, m = len(A), len(B)
LCS = [[0] * (m + 1) for _ in range(n + 1)]

# 처리 - LCS 알고리즘 이용
for i in range(1, n + 1):
  for j in range(1, m + 1):
    if A[i - 1] == B[j - 1]:
      LCS[i][j] = LCS[i - 1][j - 1] + 1
    else:
      LCS[i][j] = max(LCS[i - 1][j], LCS[i][j - 1])

print(LCS[n][m])

CODE REVIEW

  1. 백준 9251 - LCS 문제의 연장선.
  2. C++의 경우 한글을 유니코드 처리해서 3글자씩 끊어서 비교해야하는데, python은 그럴 필요가 없다. 역시 갓갓 언어!! python 사랑해요.