본문 바로가기
Problem Solving/KMP

[KMP] 백준 1305번 : 광고 / 플래 4

by ggyongi 2022. 3. 29.
반응형

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

 

1305번: 광고

세준이는 길 한가운데에서 전광판을 쳐다보고 있었다. 전광판에는 광고가 흘러나오고 있었다. 한참을 전광판을 쳐다본 세준이는 이 광고가 의미하는 것이 무엇인지 궁금해지기 시작했다. 전광

www.acmicpc.net

size = int(input())
b = input()
table = [0 for _ in range(len(b))]
i = 0
for j in range(1, len(b)):
    while i > 0 and b[i] != b[j]:
        i = table[i-1]

    if b[i] == b[j]:
        i += 1
        table[j] = i

print(size-table[-1])

초반엔 너무 어렵게 생각해서 감이 안잡혔는데,

파이 배열을 이용하여 pi[-1]을 구하면 끝이었다.

 

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글