부녀회장이 될테야 - javascript

DonQ·2022년 4월 27일
0

CodingTest

목록 보기
23/33
post-thumbnail

문제 (출처)

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

나의접근

  • 몇번을 고민하다 결국 풀이를 찾아보았다.
  • 사실 풀이도 잘 이해가 안가서... 가장 쉽게 푼 풀이를 찾아서 보았다. 이 문제는 오늘로 끝내지 말고 복습을 계속 해야겠다.

풀이

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().split('\n');

const T = Number(input.shift());

for (let i = 0; i < T; i++) {
  const k = +input.shift(); //층
  const n = +input.shift(); //호

  // 각 방당 인원수를 저장할 2차원 배열 선언
  const house = Array.from(Array(k + 1), () => Array(n + 1).fill(0));
  // 0층 (0층의 i호에는 i명이 산다.)

  for (let i = 1; i <= n; i++) {
    house[0][i] = i;
  }
  // 1 ~ k층 (k층 n호에는 k-1층 n호 + k층 n-1호만큼 산다.)
  for (let i = 1; i <= k; i++) {
    for (let j = 1; j <= n; j++) {
      house[i][j] = house[i - 1][j] + house[i][j-1];
    }
  }

  // k층 n호의 인원수 출력
  console.log(house[k][n]);
}

오늘의 배운점 및 교훈

  • Array.from() 사용법 (사실 아직은 익숙하진 않음 계속 연습 필요)
const k = 1;
const n = 3;
const house = Array.from(k + 1), () => Array(n + 1).fill(0));

console.log(house);
// [ [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ] ]
  • 2차 배열을 만들어 층과 호수에 대한 값을 넣는다.

  • 그 값은 같은 층 전 호수와 밑에 층 같은 호수를 더하여 만든다. (사실 이게 계속 헷갈렸고.. 어덯게 구하는지 이해가 잘안갔음...)

  • 우선 이문제는 어렵다 ... 아무래도 몇번 복습을 해야할꺼 같다. 이래놓고 복습을 잘 안한다.. 반성해야한다.

  • 정신 차려!! 이동규!!!

profile
꾸준히 쌓아가는 코딩 Study

0개의 댓글

관련 채용 정보