백준 SILVER 3(1, 2, 3 더하기)

image

  • 사용 언어 : javascript

  • 해결 날짜 : 2023-01-31

  • 해결 방법 :

    • dp를 활용해 문제 해결
      • dp[n] = dp[n-1] + dp[n-2] + dp[n-3]임을 활용해
      • dp[1], dp[2], dp[3]까지 값 초기화
      • 4부터 입력 값까지 돌며 dp 업데이트
  • 회고 :

    • x
  • 코드

    const fs = require('fs');
    const filePath = process.platform === 'linux' ? '/dev/stdin' : '../input.txt';
    const input = fs.readFileSync(filePath).toString().trim();
    
    solution(input);
    
    function solution(props) {
      props = props
        .split('\n')
        .slice(1)
        .map((e) => +e);
    
      props.forEach((prop) => {
        const dp = Array.from({ length: prop + 1 }, () => 0);
        dp[1] = 1;
        dp[2] = 2;
        dp[3] = 4;
    
        for (let i = 4; i <= prop; i++) {
          dp[i] = dp[i - 3] + dp[i - 2] + dp[i - 1];
        }
    
        console.log(dp[prop]);
      });
    }
    
  • 출처: 백준