Python 인터프리터에 100**1000000을 입력해보면 엄청 오래 걸리고 에러가 나올 수도 있습니다. 자릿수가 엄청 늘어나니까요.
이 문제는 2가지 방법으로 접근할 수 있습니다.
첫 번째 방법은
a**b % 10
를 효율적으로 계산하는 것입니다.
자리수를 별로 늘이지 않으면서 a**b % 10을 구하는 방법을 생각해보시는 게 좋을 것 같습니다.
물론 그럼에도 불구하고 시간 초과가 날 수 있는데, 그 경우에는 a**b % 10을 O(log b)의 복잡도로 계산하는 방법을 구상하셔야 합니다.
두 번째 방법은, a**x % 10이 x에 대해 상당히 짧은 주기를 가진다는 점을 이용하는 것입니다.
이게 무슨 뜻인지는 직접 생각해보시는 게 좋을 것 같습니다.
kjw13 4년 전
매번 파이썬으로 하면 시간초과 되는데 해결책이 궁금합니다.