학습
시험

피보나치 수 2

난이도
BEGINNER

문제 설명

자연수 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]를 반환합니다.