문제 풀이/소프티어

[소프티어] 바이러스(JAVA)

27200 2025. 3. 12. 16:40

문제

https://softeer.ai/practice/6284


풀이(3분)

import java.io.*;
import java.util.*;

public class Main {

    // k * p^n
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int K = Integer.parseInt(st.nextToken());
        int P = Integer.parseInt(st.nextToken());
        int N = Integer.parseInt(st.nextToken());

        long result = K;
        for (int i=1; i<=N; i++) {
            result = (result*P)%1000000007;
        }
        System.out.println(result);
    }

}

문제 풀이 전략

 

값의 범위를 보고 너무 크기에 어떻게 해야 할까 잠깐 고민했지만 출력 시 나눈 값을 출력하라는 것을 보고 반복문을 통해 해결하기로 했다.

 

https://to-travel-coding.tistory.com/83 글을 참고하면 모듈러 연산을 통한 뒤 출력하는 것에 대한 나름의 근거를 알 수 있을 것이다!