JS에서는 수를 나타내기 위해 사용하는 타입이 두 가지입니다.
1. Number 타입
2. BigInt 타입
Number 타입은 기본적으로 1,2,3과 같이 자주 사용되는 수입니다.
하지만 코딩 테스트를 진행하는 경우 일반적이지 않고 어마무시하게 큰 수를 다뤄야 할 수 있습니다. 왜냐하면 단순하게 사용되지 않고 곱해지고 더해지는 연산이 들어가기 때문입니다.
그렇기에 Number 타입의 범위를 알고, 그 이상의 수가 필요하다면 BigInt를 적절히 사용할 줄 알아야 합니다. Number 타입의 한계를 알아보겠습니다.
console.log(Number.MAX_SAFE_INTEGER);
// 9007199254740991
Number에는 최대로 안전한 정수 값을 확인할 수 있는 멤버가 있습니다. 9경 71조 9925억 5474만 991입니다. 9 경이나 되는 경우의 수를 따져야 하는 게 머리가 아픕니다.
그렇기 때문에 경우의 수를 9경까지 계산해도 좋지만, 구현한 코드가 맞는 것 같은데 틀렸다는 결과가 나온다면 값의 범위를 한 번 생각해 보고 BigInt로 변경하는 것이 좋을 것 같습니다.
마지막으로 BigInt의 특이한 점은 숫자 뒤에 n이 온다는 것입니다. 기존 Number 타입과 구분하기 위해서 필요합니다.
let bigType = 1n;
let default = 1;
그렇기에 코딩 테스트에서는 사용할 때 toString()을 통해 문자열로 만들어 n을 없애줘야 오답이 나오지 않습니다.
'알고리즘&코테' 카테고리의 다른 글
| [코테] 비트마스킹 기본 (0) | 2025.06.19 |
|---|---|
| [코테 꿀팁] JS 입력값 받아올 때 주의할 점 require('fs') (0) | 2025.06.13 |
| [자료구조 활용] Deque 이렇게도 활용할 수 있다! (0) | 2025.05.22 |
| [자료구조] Deque with JS 리팩토링2 (0) | 2025.05.20 |
| [자료구조] Deque with JS 메모리 누수 방지 (0) | 2025.05.16 |