Code
백준 4354
BIGFROG
2022. 2. 7. 21:55
def PrefixFunc(P): #* Make Phi array
m = len(P)
phi = [0 for x in range(m)]
phi[0] = 0
k = 0
for q in range(1,m):
while k > 0 and P[k] != P[q]:
k = phi[k-1]
if P[k] == P[q]:
k += 1
phi[q] =k
return phi
def main():
data1 = None
while True:
data1 = input()
if data1 == ".":
return 0
T = list(data1)
phi = PrefixFunc(T)
if len(T) % (len(T) - phi[-1]) == 0:
result = int(len(T) // (len(T) - phi[-1]))
print(result)
else:
print(1)
if __name__ == '__main__':
main()