[프로그래머스/Javascript] 2*N 타일링

알고리즘

Posted by Kyun2da on July 15, 2020

1️⃣서론

프로그래머스 level3 문제 2*N 타일링입니다. Javascript를 이용하여 해결하였습니다.

2️⃣문제 설명

타일링1 타일링2

3️⃣풀이

2*N 타일링 문제입니다. 이 문제는 백준에서 풀었던 문제라서 쉽게 풀 수 있었습니다. 타일링은 n-2개의 타일에서 二 정사각형 + n-1개의 타일에서 ㅣ 타일이 놓여진 타일이라고 볼 수 있습니다. 따라서 식은 arr[n] = arr[n-1]+arr[n-2]가 됩니다. 여기서 n-2개의 타일에서 ㅣㅣ의 정사각형 타일은 왜 안되느냐고 물으실 수 있는데 이 타일은 n-1개의 타일의 ㅣ 타일이 놓여진 타일에 포함이 되있다고 볼 수 있기 때문에 포함을 하지 않는 것입니다. 그럼 소스코드를 보시겠습니다.

4️⃣ 내가 푼 소스코드

1
2
3
4
5
6
7
8
const solution = (n) => {
  const arr = [];
  arr.push(0, 1, 2);
  for (let i = 3; i <= n; i++) {
    arr[i] = (arr[i - 1] + arr[i - 2]) % 1000000007;
  }
  return arr[n];
};

5️⃣ 결론

문제를 많이 푸니 다시 푸는 문제가 나오는 것일까요? 아직 잘 모르겠지만 확실히 알고리즘도 사람이 내는 것이니 정해진 유형이 있는 것 같습니다. 노력만이 살길인것을 다시한번 느낍니다. 화이팅!

6️⃣ 마치며..

질문과 지적은 환영합니다. 이 문제는 최적의 정답일 수도 아닐수도 있습니다.
궁금한게 있으시면 아래 댓글 남겨주세요.🙏
댓글은 저에게 큰 힘이 됩니다!
감사합니다. ❤️