FrontEnd/프로그래머스

[JS] 멀리뛰기

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