[๋ฐฑ์ค][Node.js] 2775๋ฒ : ๋ถ๋ ํ์ฅ์ด ๋ ํ ์ผ
Algorithm
- ๋ถ๋ ํ์ฅ์ด ๋ ํ ์ผ -
๋ฌธ์
ํ์ ๋ฐ์ํ์ ์ฐธ์ํ๋ ๊ฒ์ ์ข์ํ๋ ์ฃผํฌ๋ ์ด๋ฒ ๊ธฐํ์ ๋ถ๋ ํ์ฅ์ด ๋๊ณ ์ถ์ด ๊ฐ ์ธต์ ์ฌ๋๋ค์ ๋ถ๋ฌ ๋ชจ์ ๋ฐ์ํ๋ฅผ ์ฃผ์ตํ๋ ค๊ณ ํ๋ค.
์ด ์ํํธ์ ๊ฑฐ์ฃผ๋ฅผ ํ๋ ค๋ฉด ์กฐ๊ฑด์ด ์๋๋ฐ, “a์ธต์ bํธ์ ์ด๋ ค๋ฉด ์์ ์ ์๋(a-1)์ธต์ 1ํธ๋ถํฐ bํธ๊น์ง ์ฌ๋๋ค์ ์์ ํฉ๋งํผ ์ฌ๋๋ค์ ๋ฐ๋ ค์ ์ด์์ผ ํ๋ค” ๋ ๊ณ์ฝ ์กฐํญ์ ๊ผญ ์งํค๊ณ ๋ค์ด์์ผ ํ๋ค.
์ํํธ์ ๋น์ด์๋ ์ง์ ์๊ณ ๋ชจ๋ ๊ฑฐ์ฃผ๋ฏผ๋ค์ด ์ด ๊ณ์ฝ ์กฐ๊ฑด์ ์งํค๊ณ ์๋ค๊ณ ๊ฐ์ ํ์ ๋, ์ฃผ์ด์ง๋ ์์ ์ ์ k์ n์ ๋ํด k์ธต์ nํธ์๋ ๋ช ๋ช ์ด ์ด๊ณ ์๋์ง ์ถ๋ ฅํ๋ผ. ๋จ, ์ํํธ์๋ 0์ธต๋ถํฐ ์๊ณ ๊ฐ์ธต์๋ 1ํธ๋ถํฐ ์์ผ๋ฉฐ, 0์ธต์ iํธ์๋ i๋ช ์ด ์ฐ๋ค.
์ ์ถ๋ ฅ ์์
๋ฌธ์ ํ๊ธฐ
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on("line", function (line) {
input.push(+line.toString());
}).on("close", function () {
input.shift();
while (true) {
let apartInfo = [];
let floor = input.shift();
let ho = input.shift();
let zeroho = [];
for (let i = 1; i <= ho; i++) {
zeroho.push(i);
}
apartInfo.push(zeroho);
for (let i = 0; i < floor; i++) {
let info = [];
for (let j = 1; j <= zeroho.length; j++) {
info.push(
apartInfo[i].slice(0, j).reduce((past, curr) => past + curr, 0)
);
}
apartInfo.push(info);
}
console.log(apartInfo[apartInfo.length - 1][apartInfo[0].length - 1]);
if (!input.length) break;
}
process.exit();
});