문제 설명
자연수 n이 주어졌을 때, n번째 피보나치 수(fibo(n))를 재귀적으로 계산하는 과정에서 각각 fibo(1)과 fibo(2)가 호출된 횟수 차례로 반환하는 solution 함수를 작성하시오.
피보나치 수열은 아래와 같이 정의됩니다.
-
fibo(1)= 1 -
fibo(2)= 1 -
fibo(n)=fibo(n-1)+fibo(n-2)(단, n ≥ 3)
예를 들어 n = 4인 경우 fibo(4)는 다음과 같이 재귀적으로 호출됩니다:
피보나치 호출 트리 (n=4):
fibo(4)
/ \
fibo(3) fibo(2)
/ \
fibo(2) fibo(1)
fibo(4)를 재귀적으로 계산하는 과정에서 fibo(1) 는 1번 호출되고, fibo(2)는 2번 호출되므로 [1,2]를 반환합니다.
제한 사항
n은 1 이상 20 이하의 자연수입니다.
예시 테스트케이스 설명
| 테스트케이스 번호 | n | return |
|---|---|---|
| 1 | 2 | [0, 1] |
| 2 | 4 | [1, 2] |
| 3 | 5 | [2, 3] |
1번 테스트케이스 설명
- fibo(2)는
fibo(2)만 1회 호출,fibo(1)은 호출되지 않으므로 [0,1]을 반환합니다.
2번 테스트케이스 설명
- n=4일 때 호출 트리:
fibo(4)
/ \
fibo(3) fibo(2)
/ \
fibo(2) fibo(1)
fibo(1)는 총 1회,fibo(2)는 총 2회 호출되므로 [1,2]를 반환합니다.
3번 테스트케이스 설명
- n=5일 때 호출 트리:
fibo(5)
/ \
fibo(4) fibo(3)
/ \ / \
fibo(3) fibo(2) fibo(2) fibo(1)
/ \
fibo(2) fibo(1)
fibo(1)는 총 2회,fibo(2)는 총 3회 호출되므로 [2,3]를 반환합니다.