BOJ - 2526번 싸이클 (Python)

woga·2021년 1월 15일
0

python 풀이

목록 보기
16/27
post-thumbnail

문제 출처: https://www.acmicpc.net/problem/2526

난이도

Bronze 2


풀이 방법

반복되는 시점을 찾기만 하면 되기 때문에 리스트에 넣고 나중에 반복되는 시점을 찾아 전체 array 사이즈에서 뺐다.

통과 코드

if __name__ == '__main__':
    N, P = map(int, input().split())
    arr = []
    arr.append(N)
    x = N
    while True:
        x = (x * N) % P
        if x not in arr:
            arr.append(x)
        else:
            break

    idx = 0
    for i in range(len(arr)):
        if x == arr[i]:
            idx = i
            break
    print(len(arr)-idx)
profile
와니와니와니와니 당근당근

0개의 댓글