프론트엔드✏️/코드캠프

알고리즘 - 피보나치 수열,

당근먹는하니 2022. 6. 9. 15:00
728x90
반응형

 

function solution(n) {
    var answer = 0;
  if(n === 0 ) return 0;
  if(n === 1) return 1;
  if(n >= 2)
  answer = solution(n-2) + solution(n-1)

  return answer
}

// 7번부터 출력 크기 초과, 시간 초과 

 

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

  return answer%1234567
}

// 7번부터 그냥 실패!

 

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

// 7번부터 실패... 

 

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

solution(100)이 solution(110)보다 작고, 난리법석 치는 걸 보면서 숫자가 오바됐단 걸 느꼈음

글서 push할 때 부터 %써서 넣어줌. 걍 온갖곳에 붙여버려~ 

 

 

(A + B) % C의 값은 ( ( A % C ) + ( B % C) ) % C와 같다

 

이게 뭔 소린가~~~~하고 물어보니 물벨이 도와줬다. 

증명 잘한다...쩌네 글씨만 좀 다시 써주고싶네^^ 

 

감사합니다.

728x90
반응형