<알고리즘 문제풀이&연습>/[C++] 프로그래머스

[Level 1] 피보나치 수 (반복문)

사용자 BlockDMask 2017. 12. 15. 09:00
반응형
  • 안녕하세요 BlockDMask 입니다.

  • 프로그래머스 알고리즘 문제 

  • C++ 로 풀었습니다.
    171109 문제 빼먹음 -> 171215 완료

0. 제목

  • 프로그래머스 Level 1 피보나치 수

  • Programmers Level 1 Fibonacci

  • programmers C++ fibonacci

1. 문제 설명

  • 피보나치 수는 
    F(0) = 0, F(1) = 1 일때,
    2 이상의 n에 대하여
    F(n) = F(n-1) + F(n-2) 가 적용되는 점화식 입니다.

  • 2 이상의 n이 입력되었을 때,
    fibonacci 함수를 제작하여 n번째 피보나치 수를 반환하면 됩니다.

  • F(3) = 2
    F(15) = 610
    을 출력하면 됩니다.

2. 풀이 과정

  • 제가 아는 피보나치 수를 구하는 방법은 recursive 를 이용한 방법과 반복문을 이용하는 방법 이 있고, 반복문을 이용할때도 앞에 있는 숫자를 저장 하느냐 안하느냐 등등
    여러 방법이 있지만
    저는 배열을 선언해서 앞에 있는 숫자들을 저장하는 방법으로 문제를 풀었습니다.


3. 소스 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//https://programmers.co.kr/learn/challenge_codes/147
//LEVEL1_fibonacci
 
#include<iostream>
using namespace std;
 
long long fibonacci(int n)
{
    long long * arr = new long long[n+1]; //메모리 할당.
    arr[0= 0;
    arr[1= 1;
    
    for(int i=2; i<=n; i++){    // n번째 피보나치 수를 구해야 하므로 n까지.
        arr[i] = arr[i-1+ arr[i-2];
    }
    
    long long result = arr[n];
    delete []arr;   //메모리 해제
    return result;
}
cs


4. 인증



문제 출처 : https://programmers.co.kr/learn/challenge_codes/147

한 걸음 한 걸음 꾸준히 공부하겠습니다. 감사합니다.

반응형