반응형
안녕하세요 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
한 걸음 한 걸음 꾸준히 공부하겠습니다. 감사합니다.
반응형
'<알고리즘 문제풀이&연습> > [C++] 백준, 프로그래머스 등등' 카테고리의 다른 글
[프로그래머스] LEVEL 1 : 문자열 다루기 기본(C++) (0) | 2018.08.15 |
---|---|
[프로그래머스] LEVEL 1 : 나누어 떨어지는 숫자 배열(C++) (4) | 2018.08.05 |
[프로그래머스] LEVEL 1 : 가운데 글자 가져오기(C++) (0) | 2018.08.04 |
[Level 2] 콜라즈 추측 (0) | 2017.12.26 |
[Level 1] 최대공약수와 최소공배수 (0) | 2017.12.14 |
[백준 1463] 1로 만들기 (BFS) (0) | 2017.12.13 |
[Level 1] 행렬의 덧셈 (0) | 2017.12.13 |
[백준 1463] 1로 만들기 (DP) (2) | 2017.12.12 |