본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬]1003번 피보나치 함수

by 현장 2021. 5. 26.

-코드

for _ in range(int(input())):
    n = int(input())
    zero = [1, 0]
    one = [0, 1]
    for i in range(2, n + 1):
        zero.append(zero[i - 1] + zero[i - 2])
        one.append(one[i - 1] + one[i - 2])
    print(zero[n], one[n])

처음에는 위에 주어진 함수를 이용하려다 잘 안되어서 예전에 해결했던 피보나치 문제를 보고 거기서 0과 1을 호출한 것을 어떻게 뽑아낼까 생각하다가 찾아보니 아래 표와 같은 반복성이 있는 것을 찾게 되었습니다.

n 0 1 2 3 4 5
0 1 0 1 1 2 3
1 0 1 1 2 3 5

0의 호출수와 1의 호출수가 피보나치 함수처럼 n [i-1] + n [i - 2]를 이루고 있는 것을 찾게 된 후에 해결을 할 수 있게 되었습니다.