알고리즘/백준

[python/1003]피보나치 함수

(ㅇㅅㅎ) 2020. 4. 7. 20:18
728x90
반응형

https://www.acmicpc.net/problem/1003

 

1003번: 피보나치 함수

각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.

www.acmicpc.net

더보기

내 코드

cnt0 = 0
cnt1 = 0
# 문제에서 나온 함수
def fibonacci(N):
    global cnt0, cnt1
    if N == 0:
        cnt0 += 1
        return 0
    elif N == 1:
        cnt1 += 1
        return 1
    else:
        return fibonacci(N-1+ fibonacci(N-2)
 
if __name__=='__main__':
    # T 입력 받기
    T = int(input())
 
    # N의 범위가 40 이하
    # N이 0일 때 (0의 개수, 1의개수) == [1, 0]
    fibo_ = [[10]]*(41)
    fibo_[1= [01]
 
    for i in range(T):
        # N 입력 받기(0<= N <=40)
        N = int(input())
 
        # 함수 실행(이 방법으로 하면 느리다)
        # fibonacci(N)
 
        # 정답 출력
        # print(cnt0, cnt1)
 
        # cnt0과 cnt1 초기화
        # cnt0 = 0
        # cnt1 = 0
 
        for j in range(2, N + 1):
            fibo_[j] = [fibo_[j-1][0]+fibo_[j-2][0], fibo_[j-1][1]+fibo_[j-2][1]]
 
        print(fibo_[N][0], fibo_[N][1])
 
반응형

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

[python/9461]파도반 수열  (0) 2020.04.11
[python/1904]01타일  (0) 2020.04.09
[python/2748]피보나치 수2  (0) 2020.04.02
[python/14889]스타트와 링크  (0) 2020.03.31
[python/14888]연산자 끼워넣기  (0) 2020.03.28