코테연습
174. 2xn 타일링
hxunz
2023. 1. 9. 10:39
https://school.programmers.co.kr/learn/courses/30/lessons/12900
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제에 대한 이해
- 우리가 풀어야 할 문제는 무엇인가?
직사각형의 가로의 길이 n이 매개변수로 주어질 때, 이 직사각형을 채우는 방법의 수를 구하라 - 주어진 자료는 무엇인가?
n: 직사각형의 가로의 길이 - 조건은 무엇인가?
가로의 길이 n은 60,000이하의 자연수이다.
경우의 수를 1,000,000,007로 나눈 나머지를 return 하라.
2. 계획
- 피보나치 수열을 구하는 식을 이용한다.
- 배열에 초기값 0,1,2를 넣는다.
- n번째 피보나치 수를 구하고 이를 1000000007로 나눈 나머지값을 리턴한다.
3. 실행
const solution = (n) => {
const arr = [0, 1, 2];
for (let i = 3; i <= n; i++) {
arr[i] = (arr[i - 2] + arr[i - 1]) % 1000000007;
}
return arr[n];
};
test('solution', () => {
expect(solution(4)).toEqual(5);
});