![[백준 2747] 피보나치 수 (C/C++)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhGBwG%2FbtrMSM9qVke%2FbKZTZ3usEz2hdqmKFPtEAk%2Fimg.png)
[백준 2747] 피보나치 수 (C/C++)CSE/알고리즘 (algorithm)2022. 9. 23. 17:09
Table of Contents
Problem
https://www.acmicpc.net/problem/2747
2747번: 피보나치 수
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
Comment
피보나치 수를 재귀 함수만 사용하게 된다면 시간 복잡도가 $O(2^n)$이 되어 시간 초과가 날 확률이 높습니다. 따라서 배열에 피보나치 함수들의 값을 저장해 실행 시간을 줄이는 것이 가장 중요합니다.
Code
#include <stdio.h>
int n, d[50] = { 0, 1 };
int fib(int n)
{
if (n == 0) return 0;
if (n == 1) return 1;
if (d[n] != 0) return d[n];
d[n] = fib(n - 2) + fib(n - 1);
return d[n];
}
int main()
{
scanf("%d", &n);
printf("%d", fib(n));
}
Result
728x90
반응형
'CSE > 알고리즘 (algorithm)' 카테고리의 다른 글
[알고리즘실습] 2주차 실습과제 (0) | 2023.03.20 |
---|---|
[백준 11729] 하노이 탑 이동 순서 (C/C++) (2) | 2022.09.23 |
[백준 1629] 곱셈 (C/C++) (0) | 2022.09.23 |
[백준 4949] 균형잡힌 세상 (C++) (0) | 2021.11.17 |
[백준 11886] 요세푸스 문제 0 (C++) (0) | 2021.11.17 |
@junyeokk :: 나무보다 숲을
컴퓨터 전공 관련, 프론트엔드 개발 지식들을 공유합니다. React, Javascript를 다룰 줄 알며 요즘에는 Typescript에도 관심이 생겨 공부하고 있습니다. 서로 소통하면서 프로젝트 하는 것을 즐기며 많은 대외활동으로 개발 능력과 소프트 스킬을 다듬어나가고 있습니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!