풀이
- 메모이제이션을 사용하지 않고 단순 재귀함수로 풀었을 때는 시간초과가 발생했다
var fs = require("fs")
const stdin = fs.readFileSync('/dev/stdin').toString().split('\n');
let caseNum = stdin[0];
for(let testCase = 1; testCase <= caseNum; testCase++){
let testStr = stdin[testCase].split(" ");
let n = parseInt(testStr[0]);
let m = parseInt(testStr[1]);
let count = 0;
let visited = [];
for(let i = 0; i < m+1; i++){
let newAry = new Array(n+1).fill(0);
visited.push(newAry);
}
function combination(n, r){
if(n === r || r === 0) {
return 1;
}
if(visited[n][r] !== 0) return visited[n][r];
visited[n][r] = combination(n-1, r-1) + combination(n-1, r);
return visited[n][r];
}
console.log(combination(m,n));
}