kakasoo

[node.js] 곱셈 ( 백준 1629번 ) 본문

프로그래밍/알고리즘 풀이

[node.js] 곱셈 ( 백준 1629번 )

카카수(kakasoo) 2021. 5. 11. 17:07
반응형
const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

rl.on("line", (line) => {
    let [a, b, c] = line.split(" ").map(BigInt);

    const pow = (a, b, c) => {
        if (b == 0) {
            return BigInt(1);
        }

        const temp = pow(a, BigInt(parseInt(b / BigInt(2))), c);
        if (b % BigInt(2)) {
            return (((temp * temp) % c) * a) % c;
        } else {
            return (temp * temp) % c;
        }
    };

    console.log(Number(pow(a, b, c)));
});

상당히 시간이 오래 걸린 문제이다. 재귀를 사용하지 않고 풀고 있었다. while문을 써서.
그런데 그게 더 어려웠던 것 같다. 문제를 풀기 전에 생각하는 습관을 들여야 하는데 그러질 못했던 점을 반성한다.
꼭 반성만 한다 (...)

반응형