코딩테스트

[JS] 연습문제 > 피보나치 수

차차한 2022. 9. 13. 11:15

function solution(n) {
    var answer = [0,1];
        
    for(var i = 2; i <= n; i++){
        
        answer.push((answer[i-2] + answer[i-1]) % 1234567);       
    }
    return answer[n];
}

피보나치 수열의 처음 두 숫자는 0과 1으로 고정되어 있어서 [0,1]의 값을 가진 배열을 만들어줬다.

반복문을 돌리면서 i가 2일 때 전전 숫자와 전 숫자를 더한 값을 1234567로 나눈 나머지를 push해줘서 n까지 피보나치 수열을 완성해줬다.

n번째 값을 리턴하면 되기에 피보나치 수열이 담겨있는 answer의 n번째 인덱스 값을 리턴하면 끝.

 

...
		answer.push(answer[i-2] + answer[i-1]);       
    }
    return answer[n] % 1234567;

원래는 이런식으로 return할 때 1234567을 나눈 나머지를 리턴했는데 오답이 나왔다.

아예 null이 나와서 계산이 안 되는..?

결국 같은 값을 가져가는 거 같은데 왜 틀릴까...ㅠ