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()