큰 수를 사용해야 하니 BigInt 를 알아야 하고
시간내에 풀어야 하니 재귀를 사용해서 풀어야 한다
두가지를 알아야 풀수있으니 생각보다 정답률이 낮은 문제다...
재귀 공부하려고 풀었다가 자바스크립트의 BigInt 에 머리를 탁 치고 간다;;;
함수 안에 함수를 쓸 수 있는 점은 괜찮다만... 자바스크립트 너... 진짜;
https://www.acmicpc.net/problem/1629
const readline = require("readline").createInterface({
input: process.stdin,
output: process.stdout,
});
readline.on("line", (line) => {
input = line.split(" ").map((el) => BigInt(el));
readline.close();
});
readline.on("close", () => {
solution(input);
process.exit();
});
const solution = (input) => {
[a, b, c] = input;
const POW = (a, b, c) => {
if (b === 1n) {
return a % c;
}
let val = POW(a, BigInt(b / 2n), c);
val = (val * val) % c;
if (b % 2n === 0n) {
return val;
}
return (val * a) % c;
};
console.log(parseInt(POW(a, b, c)));
};
'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글
[백준 2798/javascript] 블랙잭 (0) | 2022.08.16 |
---|---|
[백준 10828/javascript] 스택 (0) | 2022.08.15 |
[백준 2164/javascript] 카드2 (0) | 2022.08.13 |
[백준 1158/c++] 요세푸스 문제 (0) | 2022.08.12 |
[백준 4179/c++] 불! (0) | 2022.08.11 |
댓글