Problem Solving/boj.kr (JS)

[BOJ / 자바스크립트] 2775 : 부녀회장이 될테야

hoiiiii 2022. 7. 11. 22:48

문제 : https://www.acmicpc.net/problem/2775

 

2775번: 부녀회장이 될테야

첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다

www.acmicpc.net

Sol )

  1. 테스트케이스의 개수가 몇 개 인지 알 수 없으므로 초기에 모든 층의 인원 정보를 미리 구해놓는다.
  2. r(층), c(호), r>=1, c>=1 일 때 : r층 c호의 인원수 = r층 c-1호 인원 + r-1층 c호 인원
  3. 주의 : 0 층부터 시작

소스코드 )

const [...args] = require("fs").readFileSync("/dev/stdin").toString().split("\n").slice(1, -1).map(Number);

const getRoomInfo = () => {
  const arr = Array.from(Array(15), () => new Array(15).fill(1));
  for (let i = 0; i < 15; i++) {
    arr[0][i] = i + 1;
  }
  for (let r = 1; r < 15; r++) {
    for (let c = 1; c < 15; c++) {
      arr[r][c] = arr[r][c - 1] + arr[r - 1][c];
    }
  }
  return arr;
};

const solution = (args) => {
  if (!args) {
    return "";
  }
  const arr = getRoomInfo();
  const answer = [];
  for (let i = 0; i < args.length; i += 2) {
    const [k, n] = [args[i], args[i + 1] - 1];
    answer.push(arr[k][n]);
  }
  return answer.join("\n");
};

console.log(solution(args));