Hanbit the Developer
[Python] 백준 3356번: 라디오 전송 본문
https://www.acmicpc.net/problem/3356
3356번: 라디오 전송
첫째 줄에 S의 길이 L이 주어진다. 둘째 줄에는 길이가 L인 S가 주어진다. 메시지는 알파벳 소문자로만 이루어져 있다. (1 ≤ L ≤ 1,000,000)
www.acmicpc.net
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
[Python] 백준 1305번: 광고
https://www.acmicpc.net/problem/1305 1305번: 광고 세준이는 길 한가운데에서 전광판을 쳐다보고 있었다. 전광판에는 광고가 흘러나오고 있었다. 한참을 전광판을 쳐다본 세준이는 이 광고가 의미하는 것
rccode.tistory.com
'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 |