본문 바로가기
algorithm/DP

[프로그래머스] 2 * n 타일링

by blogsy 2020. 8. 24.

https://programmers.co.kr/learn/courses/30/lessons/12900

 

코딩테스트 연습 - 2 x n 타일링

가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 ��

programmers.co.kr

그려보면 점화식을 찾을 수 있는 문제 

 

d[n] = d[n-1] + d[n-2] 

 

d 는 2*n 직사각형을 만들 수 있는 방법의 수가 저장되는 배열

 

function solution(n) {
  var answer = 0;
  let d = [];

  d[0] = 1;
  d[1] = 1;

  if (n === 0 || n === 1) return 1;
  if (n >= 2) {
    for (var i = 2; i <= n; i++) {
      d[i] = d[i - 2] + d[i - 1];
      d[i] %= 1000000007;
    }
  }
  answer = d[n];

  console.log(answer);
  return answer;
}

 

'algorithm > DP' 카테고리의 다른 글

[백준/9461] 파도반 수열  (0) 2020.04.03
[백준/1003] 피보나치 함수  (0) 2020.04.03
[백준/2748] 피보나치 수 2  (0) 2020.04.03

댓글