-
[Softeer] Lv.2 바이러스 - JavaScript알고리즘/Javascript 문제 2025. 2. 27. 17:33
1. 문제
N초 후 P배씩 증가하는 K마리의 바이러스의 수를 구하는 문제
2. 해설
매우 큰 수에 대한 반복문과 BigInt 자료형을 알고 있는지 점검하는 문제
(일반 원시 자료형으로 계산하면 틀린다.)
입력값을 받아 처음부터 BigInt 자료형으로 변환하여 정밀도 손실 없이 정확한 계산을 수행해야 한다.
Number 타입을 사용하는 경우 큰 수의 곱셈에서 오버플로우와 정밀도 손실 문제가 발생할 수 있다.
3. 해답
const [k, p, n] = require('fs').readFileSync('/dev/stdin', 'utf8').trim().split(' ').map(e => BigInt(e)); let tmp = k; for (let i = 0; i < n; i++) { tmp = (tmp * p) % BigInt(1000000007); } console.log(Number(tmp));
4. 문제 출처
https://softeer.ai/practice/6284
Softeer - 현대자동차그룹 SW인재확보플랫폼
softeer.ai
'알고리즘 > Javascript 문제' 카테고리의 다른 글
피보나치 수열 (Fibonacci Sequence) - JavaScript (0) 2025.04.02 소수 (Prime) - JavaScript (0) 2025.04.01 순열, 조합, 팩토리얼 - JavaScript (0) 2025.03.13 [Softeer] Lv.2 연탄의 크기 - JavaScript (1) 2025.02.27