KMP 알고리즘을 활용한 코드
def to_lps(pat, L):
lps = [0] * L
i, n = 1, 0
while i < L:
if pat[i] == pat[n]:
n += 1
lps[i] = n
i += 1
else:
if n != 0:
n = lps[n-1]
else:
i += 1
print(L - lps[-1])
L = int(input())
pat = input()
to_lps(pat, L)
'파이썬 코테 준비' 카테고리의 다른 글
[백준 1644] 소수의 연속합 - Python(파이썬) (0) | 2021.04.03 |
---|---|
[백준 1806] 부분합 - Python(파이썬) (0) | 2021.03.31 |
[백준 11050] 이항 계수 1 - Python(파이썬) (0) | 2021.03.31 |
[백준 11051] 이항 계수 2 - Python(파이썬) (0) | 2021.03.31 |
[백준 2470] 두 용액 - Python(파이썬) (0) | 2021.03.31 |
댓글