[Til]fibonacci

이종원·2020년 9월 10일
0

수(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개의 댓글