728x90
📍 바이러스
K와 P의 최대값은 10^8, N의 최대값은 10^6이므로 계산하다가 오버플로우가 날 가능성이 농후하다. (사실 무조건인듯)
따라서 계산할 때마다 1000000007을 나눠준다. ✅ 모듈러 연산
long result = K;
int mod = 1000000007;
for(int i=0; i<N; i++){
result = ((result % mod) * (P % mod)) % mod;
}
✨ 전체코드 ✨
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(sc.readLine());
int K = Integer.parseInt(st.nextToken());
int P = Integer.parseInt(st.nextToken());
int N = Integer.parseInt(st.nextToken());
long result = K;
int mod = 1000000007;
for(int i=0; i<N; i++){
result = ((result % mod) * (P % mod)) % mod;
} System.out.println(result);
}
}
🌀 성능
- 메모리 : 10.23 MB
- 시간 : 98 ms
'Algorithm > Softeer' 카테고리의 다른 글
[JAVA | Softeer] 나무 출력 | 메리 크리스마스 (0) | 2024.07.30 |
---|---|
[JAVA | Softeer] 8단 변속기 (0) | 2024.06.28 |
[JAVA | Softeer] 금고털이 (0) | 2024.06.28 |
[JAVA | Softeer] A+B | 효도의 시작 | 근무 시간 | 주행거리 비교하기 | 개표 | 연탄 배달의 시작 | Tren del Fin del Mundo | 나무 심기 | 위험한 효도 (0) | 2024.06.27 |