PS/Programmers

Programmers / Level 2 / 2 x n 타일링 / JS

KimMinJun 2023. 1. 19. 01:21

< 문제 바로가기 >

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

function solution(n) {
  const DIVISOR = 1e9 + 7;
  let dp = [0, 1, 2];

  for(let i=3; i<=n; i+=1) {
    dp[i] = (dp[i-2] + dp[i-1]) % DIVISOR;
  }

  return dp[n];
}

const n = 4;
const result = solution(n);
console.log(result);

결론부터 말하자면 이 문제는 피보나치 수열의 규칙성을 가지는 문제이다.

 

사실 예전에 백준에서 풀었던 문제인데 기억이 나지않아서 다시 그려보면서 풀어보았다.

n = 7인 경우가 문제에서 나와있었기 때문에, n이 6일때의 값을 유추할 수 있었고, 피보나치 수열과 동일하다는 것을 알아냈다.