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

'Code' 카테고리의 다른 글

python UDP Calculator  (0) 2022.05.09
raw to bmp  (0) 2022.03.29
백준 1786  (0) 2022.02.07
[백준1978] 소수찾기  (0) 2020.01.09
[백준1193] 분수찾기  (0) 2020.01.09