// 문제 79 피보나치수
function solution(n) {
const MOD = 1234567;
if (n === 0) return 0;
if (n === 1) return 1;
let prev2 = 0; // F(0)
let prev1 = 1; // F(1)
let current;
for (let i = 2; i <= n; i++) {
current = (prev1 + prev2) % MOD;
prev2 = prev1;
prev1 = current;
}
return current;
}
// 주요 포인트:
// 1. MOD 설정: 나머지 연산에 사용할 값을 설정합니다. 이는 문제에서 주어진 1234567입니다.
// 2. 기본 조건 처리: n이 0이나 1인 경우, 해당 피보나치 수를 직접 반환합니다.
// 3. 변수 초기화: 초기 피보나치 수 F(0)과 F(1)을 설정하고, 계산 결과를 저장할 current를 선언합니다.
// 4. 피보나치 수열 계산:
// 2부터 n까지 루프를 돌면서 현재 피보나치 수를 계산합니다.
// prev1과 prev2를 더한 결과를 MOD로 나눈 나머지를 current에 저장합니다. 이렇게 하면 숫자가 너무 커지지 않고, 계산의 정확성을 유지할 수 있습니다.
// prev2와 prev1을 순서대로 업데이트합니다.
// 5. 결과 반환: 계산된 n번째 피보나치 수를 반환합니다.