2019. 8. 19. 16:50
728x90

문제 번호: 2748

문제 제목: 피보나치 수 2

문제 주소: https://www.acmicpc.net/problem/2748


문제 내용

입력에 n번째에 해당하는 피보나치 수를 출력한다.


테스트 케이스

1

1

2

1

3

2

10

55

90

2880067194370816120


문제 풀이

입력 범위인 90번째의 수가 매우 크므로 결과 출력에는 64bit 변수가 필요하다.
피보나치 수열의 경우 f(n-1) + f(n-2)로 표현되는 것이 일반적이지만 이를 재귀함수로 구현할 경우 같은 중복 계산이 매우 많아지므로 수가 커질수록 성능이 크게 저하된다. 차라리 for를 이용한 반복문을 이용하는 편이 빠르다.

동적 계획법으로 풀 경우에는 해당하는만큼 배열을 생성하고 아래와 같이 진행하면 된다.
1. n + 1개짜리 배열을 생성하고 [1]과 [2]에는 각각 1을 대입한다.
2. [2]~[n]까지 [n-1], [n-2]를 합한 수를 대입한다.
3. n번째 값을 출력한다.


풀이 코드


728x90

'공부 > 문제풀기' 카테고리의 다른 글

백준 1904 - 01타일  (0) 2019.08.21
백준 1003 - 피보나치 함수  (0) 2019.08.19
백준 10814 - 나이순 정렬  (0) 2019.08.19
백준 1181 - 단어 정렬  (0) 2019.08.19
백준 11651 - 좌표 정렬하기 2  (0) 2019.08.19
Posted by 아야카