kakasoo

[node.js] 다리 놓기 ( 백준 1010번 ) 본문

프로그래밍/알고리즘 풀이

[node.js] 다리 놓기 ( 백준 1010번 )

카카수(kakasoo) 2021. 3. 30. 10:24
반응형

부분 문자열, 부분 수열과 같다고 생각하면 되겠다.


const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

let count = 0;
const input = [];

rl.on("line", (line) => {
    if (!count) {
        count = Number(line);
    } else {
        input.push(line);
        if (input.length === count) {
            main(line);
            rl.close();
        }
    }
}).on("close", () => {
    process.exit();
});

const factorial = (num) => {
    if (num === 1 || num === 0) {
        return 1;
    }
    return num * factorial(num - 1);
};

const main = () => {
    input.forEach((el) => {
        const numbers = el
            .split(" ")
            .map(Number)
            .sort((a, b) => a - b);
        const min = numbers[0];
        const max = numbers[1];
        const answer = factorial(max) / (factorial(min) * factorial(max - min));
        console.log(parseInt(answer + 0.5));
    });
};
반응형