문제풀이-배열

오늘 어려웠던 배열문제

문제

수를 입력 받아 num 번 째 +1 까지의 수를 구해라

입출력 예시

3을 입력 받을 시 [0,1,2,3]

풀이

function fibonacci(num) {
  if(num === 0){
    return [0]
  }
  if(num == 1){
    return [0,1]
  }

  let result = [0,1]

  for(let i=1; i<num; i++){
    result.push(result[i] + result[i-1])
  }
  
  return result
}

1.우선 0하고 1을 받을시 그 값은 정해진 리턴 값을 출력한다
2.result에 배열 0,1 을 할당한다.
// 피보나치 수열은 그 전에 있는 수를 계속 더한 수 이기 때문에
기본값을 0,1 을 변수를 만든다 그래야 현재 있는 1하고 0을 더해서
피보나치 수열을 받을 수 있기 때문이다.
3.반복문을 만들어 1번째 값이 0번째 값이랑 더한 수를 result에 할당한다
//i 가 계속 증감하기 때문에 그 0+1한 값을 push하고 그다음엔
push한 값 이전의 값 을 더하게된다
4.num 보다 작을 때 까지 반복한다
//문제가 num+1 을 보여줘야 하기 때문에 작을 때 까지 반복한다
num이 8일 경우 7번 반복하면 이미 0,1 은 할당 되어 있기 때문에
7+2 즉 9개의 피보나치 수열을 반환한다


처음에 있지도 않은 num 배열 을 생각해서 잘 안풀렸었는데
페어님이 지적을 해주어서 num은 그냥숫자였지(머쓱;)
그래서 내가 배열을 만들고 앞전에 배운 push를 활용하여
쉽게 풀수 있었다

좋은 웹페이지 즐겨찾기