N이 90으로 주어지면 자릿수가 초과되어서 BigInt 자료형으로 감싸서 값을 할당해야 통과한다.
BigInt는 끝에 n이 붙기 때문에 toString()을 사용해서 출력한다.
N이 90까지 가능하다. Number 타입의 2^53 - 1 = 보다 큰 값(16자리) 넘어가는 게 예상될 때 BigInt를 쓴다.
Code
const solution = function (i) {
const N = i.toString().trim() * 1;
const DP = Array(N + 1).fill(1);
DP[0] = 1;
DP[1] = 1;
for (let i = 2; i <= N; i++) {
DP[i] = BigInt(DP[i - 2]) + BigInt(DP[i - 1]);
}
console.log(DP[N - 1].toString());
return DP[N - 1].toString();
};
describe('이친수', () => {
it('TC1', () => {
expect(solution(`3`)).toStrictEqual('2');
});
});
TypeScript
복사