Hanbit the Developer
[Python] 백준 3356번: 라디오 전송 본문
https://www.acmicpc.net/problem/3356
import sys
input = sys.stdin.readline
def get_pi(string):
string_length = len(string)
pi = [0]*string_length
j = 0
for i in range(1, string_length):
while j > 0 and string[i] != string[j]:
j = pi[j-1]
if string[i] == string[j]:
j += 1
pi[i] = j
return pi
if __name__ == '__main__':
L = int(input())
S = str(input().rstrip())
pi = get_pi(S)
print(L - pi[-1])
아래 문제와 완전히 같으며, 설명은 생략한다.
https://rccode.tistory.com/entry/Python-%EB%B0%B1%EC%A4%80-1305%EB%B2%88-%EA%B4%91%EA%B3%A0
'Algorithm > 백준' 카테고리의 다른 글
[Python] 백준 1562번: 계단 수 (0) | 2021.08.29 |
---|---|
[Python] 7575번: 바이러스 (0) | 2021.08.27 |
[Python] 백준 2533번: 사회망 서비스(SNS) (0) | 2021.08.26 |
[Python] 백준 2568번: 전깃줄 - 2 (0) | 2021.08.25 |
[Python] 백준 2056번: 작업 (0) | 2021.08.25 |