728x90
규칙성을 찾으면 쉽게 해결할 수 있는 문제였다.
칸이 1개라면 -> 1개
칸이 2개라면 -> 2개
칸이 3개라면 -> 3개
칸이 4개라면 -> 5개
....
규칙성이 피보나치 수열과 같음을 활용해서 해결할 수 있다.
function solution(n) {
let arr = [1n, 1n, 2n];
for(let i = 3; i <= n; i++) {
arr.push(arr[i - 1] + arr[i - 2]);
}
return arr[n] % 1234567n;
}
이 경우, 2000까지 수가 간다면 너무 커지므로 위처럼 bigInt를 활용하거나 애초에 배열에 값을 넣을 때 1234567로 나눈 값을 넣어주는 방법이 있다.
728x90
'FrontEnd > 프로그래머스' 카테고리의 다른 글
[JS] 다음 큰 숫자 (0) | 2023.08.09 |
---|---|
[JS] 땅따먹기 (0) | 2023.08.09 |
[JS] 최댓값과 최솟값 (0) | 2023.07.28 |
[JS] 최솟값 만들기 (0) | 2023.07.28 |
[JS] 전화번호 목록 (0) | 2023.07.28 |