[JavaScript][Programmers] 멀리뛰기

조준형·2021년 7월 16일
0

Algorithm

목록 보기
41/142
post-thumbnail

🔎 멀리뛰기

❓ 문제링크

https://programmers.co.kr/learn/courses/30/lessons/12914

📄 제출 코드

function solution(n) {
    // let fibo = [0,1,2];
    let result = 0;
    let first = 1;
    let second = 2;
    if (n == 1) result = first;
    else if (n == 2) result = second;
    else {
        for (var i = 3; i <= n; i++) {
            // fibo.push((fibo[i - 2] + fibo[i - 1])%1234567);
            result = (first + second) % 1234567;
            first = second;
            second = result;
        }
    }
    // console.log(fibo);
    return result;
}

let n = 4;
console.log(solution(n));

뭔가 규칙이 있을까 하고 차례대로 써보다가 피보나치수열인걸 발견하였다.

그래서 그냥 피보나치수열을 구현하는거구나하고,

let fibo = [0,1,2]
for (var i = 3; i <= n; i++) {
	fibo.push((fibo[i - 2] + fibo[i - 1]));
}

이렇게 하여 fibo배열의 마지막을 pop하여 답을 도출하려고 하였다.
그러나 7번부터 다틀렸다고 뜨길레 문제를 다시읽어보니 %1234567 한 결과를 리턴하라 하였다.
%1234567을 했더니 틀렸다고 나온 테케는 다 맞았지만 1번테케가 계속 틀렸다고 떴다.
질문게시판을 살펴보니 long[] dp = new int[n+1]하면 메모리때문에 막힌다는 글이 있었다.
그래서 배열로 풀지않고 그냥 변수를 변경하면서 풀었더니 성공하였다.

profile
깃허브 : github.com/JuneHyung

0개의 댓글