✔ 풀이를 위한 아이디어
✔ 수정 전 코드 [시간 초과]
import sys
A, B, C = map(int, sys.stdin.readline().split())
def dcSquare(n):
if n == 1:
return A
x = dcSquare(n//2)
if n % 2 == 0:
return x * x
else:
return x * x * A
print(dcSquare(B) % C)
✔ 수정 후 코드
import sys
A, B, C = map(int, sys.stdin.readline().split())
def dcSquare(n):
if n == 1:
return A % C
x = dcSquare(n//2)
if n % 2 == 0:
return (x * x) % C
else:
return (x * x * (A % C)) % C
print(dcSquare(B))