백준 SILVER 2(2xn 타일링 2)

image

  • 사용 언어 : javascript

  • 해결 날짜 : 2023-02-01

  • 해결 방법 :

    • dp를 통해 문제 해결
    • dp[n] = dp[n-1] + 2 x dp[n-2]의 점화식을 활용
  • 회고 :

    • 각 dp 계산마다 10007로 나눴을 때 나머지로 연산
  • 코드

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