
😎풀이
- 모듈러 상수 정의 1,337
- 모듈러를 통해 각 단계별, 정수 최댓값 초과를 방지하는 제곱함수
power 정의
- 12^123은 12^120 * 12^3 임을 이용하여 자릿수 별로 제곱한 결과를 재귀형식으로 누적하여 반환
const MOD = 1337
function superPow(a: number, b: number[]): number {
if(b.length <= 0) return 1
const lastDigit = b.pop()
const partA = power(superPow(a, b), 10)
const partB = power(a, lastDigit)
return partA * partB % MOD
};
function power(a: number, b: number) {
const modA = a % MOD
let result = 1
for(let i = 0; i < b; i++) {
result = (result * modA) % MOD
}
return result
}