๋ฐฑ์ค€ [nodejs] > 1629๋ฒˆ ๊ณฑ์…ˆ

2024. 11. 17. 10:14ยท๐Ÿ”’Algorithm

 

 

๋ฌธ์ œ

https://www.acmicpc.net/problem/1629

 

ํ’€์ด

js์—์„œ BigInt๋ฅผ ๋งŽ์ด ๋‹ค๋ค„๋ณด์ง€ ์•Š์•„์„œ ๊ต‰์žฅํžˆ ์ƒ์†Œํ•ด์„œ ๋งŽ์ด ๋ฒ„๋ฒ… ๊ฑฐ๋ ธ๋‹ค.

BigInt๋Š” 2^53-1๋ฅผ js ๋‚ด์—์„œ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๋‚ด์žฅ๊ฐ์ฒด์ด๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด 

์ฃผ์–ด์ง„ A,B,C ์˜ ๋ฒ”์œ„๊ฐ€ 2,147,483,647 ์ดํ•˜์ด๊ธฐ ๋•Œ๋ฌธ์— 2,147,483,647์˜ ์ œ๊ณฑ์Šน๋งŒ ๋˜๋„ ์ด๋ฏธ BigInt๋ฅผ ๋‹ค๋ค„์•ผ ํ•œ๋‹ค. 

 

์ด ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ์œ„ํ•ด์„œ ํ•ต์‹ฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

 

1. (A * B) % C  =  ((A%C) * (B%C))%C ์ด๋‹ค

-> ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ํฐ์ˆซ์ž์˜ ์—ฐ์‚ฐ๋ณด๋‹จ ์ž‘์€์ˆซ์ž์˜ ์—ฐ์‚ฐ ์†๋„๊ฐ€ ํ›จ์”ฌ ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‚˜๋จธ์ง€๋“ค์„ ๊ณฑํ•˜๋Š”๊ฒŒ ์†๋„์ฐจ์›์—์„œ ์ข‹๋‹ค

 

2. 2^10 ์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด 2๋ฅผ 10๋ฒˆ ๊ณฑํ•˜๊ธฐ๋ณด๋‹จ (9๋ฒˆ์˜ ์—ฐ์‚ฐํšŸ์ˆ˜) 2^5์„ ๊ตฌํ•œ๋’ค 2^5๋ฅผ 2๊ฐœ ๊ณฑํ•˜์ž! (5๋ฒˆ์˜ ์—ฐ์‚ฐํšŸ์ˆ˜)

 

const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().trim();

let [A, B, C] = input.split(" ").map((n) => BigInt(n));

let recursive = (pow) => {
    if (pow === 1n) {
        return A % C;
    }
    let newPow = pow / 2n;
    let half = recursive(newPow) % C;

    if (pow % 2n === 0n) {
        return (half * half) % C;
    } else {
        return (half * half * (A % C)) % C;
    }
};

let answer = recursive(B);
console.log(Number(answer));

'๐Ÿ”’Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋ฐฑ์ค€[node.js] > 15650๋ฒˆ ์ œ์ถœ  (0) 2024.11.21
๋ฐฑ์ค€[node.js] > 1966๋ฒˆ ์ œ์ถœ  (0) 2024.11.20
๋ฐฑ์ค€ [node.js] > 1916๋ฒˆ ์ตœ์†Œ ๋น„์šฉ ๊ตฌํ•˜๊ธฐ  (1) 2024.11.16
๋ฐฑ์ค€[node.js] > 11660๋ฒˆ ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ5  (0) 2024.11.14
๋ฐฑ์ค€[nodejs] > 9465๋ฒˆ ์Šคํ‹ฐ์ปค  (1) 2024.11.13
'๐Ÿ”’Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ๋ฐฑ์ค€[node.js] > 15650๋ฒˆ ์ œ์ถœ
  • ๋ฐฑ์ค€[node.js] > 1966๋ฒˆ ์ œ์ถœ
  • ๋ฐฑ์ค€ [node.js] > 1916๋ฒˆ ์ตœ์†Œ ๋น„์šฉ ๊ตฌํ•˜๊ธฐ
  • ๋ฐฑ์ค€[node.js] > 11660๋ฒˆ ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ5
devWarrior
devWarrior
  • devWarrior
    devWarrior
    devWarrior
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐ŸงฉDev (263)
      • โญFE (34)
      • ๐Ÿ”’Algorithm (155)
      • โž•Etc. (11)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์“ฐ๊ธฐ
    • ๊ด€๋ฆฌ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    BFS
    ์ž์Šค
    dp
    Easy
    node.js
    ํ”„๋ก ํŠธ์—”๋“œ
    ์‹ค๋ฒ„3
    FE
    Algorithm
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
    ์ฝ”ํ…Œ
    react
    ์‹ค๋ฒ„2
    leetcode
    ์‹ค๋ฒ„4
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์‹ค๋ฒ„1
    DFS
    ๊ณจ๋“œ5
    ๊ตฌํ˜„
    ์˜ค๋ธ”์™„
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    Lv2
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ๋ฐฑ์ค€
    javascript
    nodejs
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๊ทธ๋ฆฌ๋””
    js
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
devWarrior
๋ฐฑ์ค€ [nodejs] > 1629๋ฒˆ ๊ณฑ์…ˆ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”