[백준] 1629 곱셈
·
Algorithm/Algorithm (문제풀이)
🔒 문제 🧠 아이디어 $$ A^B % C $$ 1. 시간 복잡도 A를 그대로 B 번 곱하면 O(AB) 시간이 걸리고 A 와 B가 모두 Int 최대일때 2^64에 가까운 시간복잡도를 갖게된다. 어떻게 하면 시간 복잡도를 낮출 수 있을까? $$ O (Log B) $$ 로 해결할 수 있게되었다. 이 때, 주의해야 할 것이 지수승이 '짝수'냐 '홀수'냐에 따라 분기되어야 한다는 것이다. 예를 들면 A^6 % c == (A^3 % c * A^3 %c) %c 지만 A^7 % c == (A^3 % c * A^3 %c A^1 % c) %c 로 나뉘어야한다. /2 연산을 할 때 피제수가 홀수인 경우 나머지 1이 버려지기 때문이다. 2. 자료형 Int 자료형은 4바이트로 $$ ~ 2^{32} - 1 $$ Long 자료형이..