문제 : https://www.acmicpc.net/problem/2775
<내 풀이 with node.js>
const fs = require("fs");
const input = fs.readFileSync(0).toString().trim().split('\n');
const T = Number(input[0]); // n은 test case 수
const tests = input.slice(1); // n개의 테스트 케이스 : 각 첫째줄에 층수(행) 둘째줄에 호실(열)
let MAX = 15;
let mension = new Array(MAX).fill(0).map(()=>Array(MAX).fill(0));
for(let i=0; i<MAX; i++) mension[0][i] = i+1;
for(let i=0; i<MAX; i++) mension[i][0] = 1;
for(let i=1; i<MAX; i++) { // 아파트 각 호실에 공식에 맞게 사람 채우기
for(let j=1; j<MAX; j++) {
mension[i][j] = mension[i-1][j]+mension[i][j-1]; // 공식
}
}
for(let i=0; i<tests.length/2; i++) { // 각 테스트 케이스에 입력된 호실 내 사람 수 출력
let k = Number(tests[i*2]); // story
let n = Number(tests[i*2+1]); // room
console.log(mension[k][n-1]);
}
- 아파트(Mention)를 의미하는 배열 선언
- 기본 공식 : i층 j호실 안 사람 수 = i-1층 j호실 사람 수 + i층 j-1호실 사람 수