Algorithm

[백준] 9095번: 1, 2, 3 만들기 - Node.js (자바스크립트)

sqsung 2023. 6. 5. 12:19

1. 문제 ㅡ 9095번: 1, 2, 3 만들기 (난이도: Silver III)

 

9095번: 1, 2, 3 더하기

각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.

www.acmicpc.net

2. 풀이 ㅡ Node.js (자바스크립트)

const [N, ...tcs] = require('fs')
   .readFileSync('/dev/stdin')
   .toString()
   .trim()
   .split('\n')
   .map(val => +val);

console.log(
  (() => {
    let answer = '';
    // 입력값(정수 n)은 양수이며 11보다 작다  
    const DP = Array.from({ length: 11 }, () => 0);

	// 정수 1, 2, 3을 만들 수 있는 조합의 수
    DP[1] = 1;
    DP[2] = 2;
    DP[3] = 4;

	// 점화식에 의거해 DP 배열 정리
    for (let i = 4; i < 11; i++) {
      DP[i] = DP[i - 1] + DP[i - 2] + DP[i - 3];
    }

	// answer 변수 업데이트
    for (let i = 0; i < N; i++) {
      answer += DP[tcs[i]] + '\n';
    }

    return answer.trim();
  })()
);