[Til]fibonacci

이종원·2020년 9월 10일

수(num)를 입력받아 num번째까지의 피보나치 수열을 리턴해야 합니다.

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...

  1. 빈배열일 만들어서 그안에 조건이 맞으면 넣어준다
  2. for문을 돌리고 그 조건을 맞춘다
  3. 초기 값인 0, 1은 그냥 빈 배열에 넣어준다
  4. 조건을 만들고 첫번째 + 두번째를 해서 세번째 인덱스를 만든다
  5. 4번째 인덱스는 두번째와 세번째를 더해서 조건식까지 규칙적으로 리턴한다
function fibonacci(num) {
  let result = [] // 배열을 담을 그릇
  for(let i = 0; i <= num; i++ ){ // for문으로 하나 하나를 찾으면서 조건에 맞게 더할 준비 
    if(i === 0 || i === 1){ // i이가 0일때와 i이가 1일때는 그냥 빈 배열에 넣는다
      result.push(i) // 그러면 일단 result 에는 [0, 1] 만 있을 꺼다
    } else { // else 지만  i 가 2부터는 result[0] + result[1]해줘서 
      result.push(result[i-1] + result[i-2]) 
      // result 배열에 넣어주고 나머지 i또한 조건식 까지 계산해준다 
    }
  }
  return result 는 리턴은 result
}

사실 이 문제는 재귀함수로 풀면 더 간단하게 풀 수 있지만 좀 더 풀어 헤쳐서 디테일하고 분석하고자 하면
이 방법이 이해하기 좋다고 생각한다

0개의 댓글