백준 알고리즘/실버

1003 피보나치 함수

GenieLove! 2022. 3. 11. 00:53
728x90
반응형

Python

count_0 = [1, 0, 1]#0, 1, 2일 때 0개수 배열
count_1 = [0, 1, 1]#0, 1, 2일 때 1개수 배열

def fibonacci(n):
    for number in range(len(count_0), n + 1):
        count_0.append(count_0[-2] + count_0[-1])
        count_1.append(count_0[-2] + count_1[-1])

def main():
    testcase = int(input())
    result = []
    for _ in range(testcase):
        number = int(input())
        fibonacci(number)
        result.append(number)

    for num in result:
        print(f"{count_0[num]} {count_1[num]}")

main()

# 초기코드 -> 시간초과
# def fibonacci(n:int, count_0:int, count_1:int) -> list:
#     if n == 0:
#         return [count_0 + 1, count_1]
#     if n == 1:
#         return [count_0 , count_1 + 1]
#     result_1 = fibonacci(n - 1, count_0, count_1)
#     result_2 = fibonacci(n - 2, count_0, count_1)
#     return [result_1[0] + result_2[0], result_1[1] + result_2[1]]


# def main():
#     testcase = int(input())
#     result = []
#     for _ in range(testcase):
#         result.append(fibonacci(int(input()), 0, 0))

#     for v in result:
#         print(" ".join([str(value) for value in v]))

# main()
728x90
반응형

'백준 알고리즘 > 실버' 카테고리의 다른 글

1138 한 줄로 서기  (0) 2022.03.14
1117 색칠1  (1) 2022.03.13
1058 친구  (0) 2022.03.10
1024 수열의 합  (0) 2022.03.09
1012 유기농 배추  (0) 2022.03.08